义:用于存储一个不会变化也不希望变化的数据的标示符。

常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式。

定义形式

  • 使用define()函数定义
    • 使用形式:define(“常量名”, 常量值);
    • 推荐常用名使用全大写形

   

  • 使用const语法定义

     

    • 使用形式: const  常量名 = 常量值;
    • 但const语法只能在“最顶层”的代码域中使用(不能在大括号中)
    • 也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用

使用形式:

      (1)直接使用名字

          (2)或使用constant()函数:constant(“常量名”)

变量和常量的区别:

      

  • 定义形式不同:
  • 使用形式不同:常量无需$符号
  • 可变程度不同:常量的值不可以改变,常量也不可以销毁
  • 作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)
  • 可用类型不同:常量只能存储标量类型:int,float,string,bool

判断常量是否存在:defined()

        判断的结果为布尔值。

        常用形式:if ( defined (某常量名) == false ){ .....这里可以去定义该常量;}

        实际上,可以这样:

        $result = defined (某常量名);    //结果是true或false

使用一个未定义的常量(特殊情况):

        使用一个未定义的常量会报一个错误(notice错误)——跟使用一个未定义的变量一样——当然不推荐。

          但是:

          php,此时会得到一个意想不到的结果:似乎该常量存在,并该常量的值就是该名字。

魔术常量:

  魔术常量其实是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。

  • 比如:__DIR__(当前网页文件的所在目录),__FILE__(当前网页文件),__LINE__(当前这一行)
  • 魔术常量其实类似变量,其值随着不同代码而变化,不区分大小写
  • 参考手册〉语言参考〉常量〉魔术常量

结果展示:

12)PHP,常量和魔术常量的更多相关文章

  1. PHP面向对象——类常量,魔术常量与延期绑定

    普通常量  define('常量名',常量值): 以前说过:define定义的常量,全局有效 无论是页面内,函数内,类内,都可以访问. 例: define('ACC','Deny')    class ...

  2. PHP中的预定义常量、类常量和魔术常量的区别

    PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 对于一些基本的常量是这些常量在 ...

  3. php常量,提前定义常量,魔术常量及基本数据类型

    常量 定义: 形式一 // define("PI",常量值); define("PI",3.14); define("school",&qu ...

  4. PHP 预定义常量(魔术常量)

    显示当前代码在多少行__LINE__ echo __LINE__; 获取当前文件绝对路径 __FILE__ echo __FILE__; //结果为: // D:\xxxx\xxxx\xxxx\ind ...

  5. php中的几个常用的魔术常量

        在php中我们可以自定义常量,同时php中也自定义了一些好用的常量,这些常量会根据其所在的位置而自动变化. 我们称之为魔术常量.魔术常量可以大写也可以小写,是不区分大小写的     __FIL ...

  6. PHP的八个魔术常量

    1. 什么魔术常量 预定义常量:预定义常量就是PHP内置的常量,预先定义好的 PHP有很多预定义常量,比如:PHP_VERSION(版本号).PHP_OS(操作系统). 这些普通的预定义常量在程序中的 ...

  7. PHP中的那些魔术常量

    之前我们已经了解了一些常用的魔术方法,除了魔术方法外,PHP还提供一些魔术常量,相信大家在日常的工作中也都使用过,这里给大家做一个总结. 其实PHP还提供了很多常量但都依赖于各类扩展库,而有几个常量是 ...

  8. php魔术方法和魔术常量

    1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一 ...

  9. php5魔术函数、魔术常量

    魔术函数 1.__construct()  实例化对象时被调用,  当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct ...

随机推荐

  1. PHP四种输出语句

    //echo 深入理解echo ,echo是一个函数 //echo 功能:向浏览器输出一个或多个字符串; //echo 返回值:void 无返回值; echo "今天是个好天气"; ...

  2. cf 453A.Little Pony and Expected Maximum

    水了一上午.. 拿6面举例子吧,因为是投掷m次取最大,最大是1概率(1/6)^m;最大是2就可以取到(1,2)那么概率就是(1/3)^m-(1/6)^m.(当前减去上一个) #include<b ...

  3. bfs--P1301 魔鬼之城

    *传送 求最小步数,bfs求解.因为题目要求可以走八个方向(上下左右和对角线),所以两个方位数组来找八个方向 int dirx[9]={0,0,1,1,1,0,-1,-1,-1}; int diry[ ...

  4. HDU_2255 二分图最佳完美匹配 KM匈牙利算法

    一开始还没看懂这个算法,后来看了陶叔去年的PPT的实例演示才弄懂 用一个lx[]和ly[]来记录X和Y集合中点的权值,有个定理是 lx[i]+ly[j]==w[i][j](边权值) 则该点是最佳匹配, ...

  5. java使用BigDecimal 实现随机金额红包拆分算法

    原创代码,引用注明出处:https://www.cnblogs.com/guangxiang/p/12218714.html @Servicepublic class SplitRedPacketsS ...

  6. Codeforces 1296D - Fight with Monsters

    题目大意: n 只怪兽,每只的血量为 h[i] ,你的攻击力为 a ,你的对手攻击力为 b 打每只怪兽时,都是你先出手,然后你的对手出手,这样轮流攻击 如果是你给予了怪兽最后一击,你就能得到一分 你还 ...

  7. 远程过程调用——RPC

    https://www.jianshu.com/p/5b90a4e70783 清晰明了

  8. js.console携程近期低价机票信息

    !function(){var city = {"SHA":"上海虹桥","PVG":"上海浦东","YIW& ...

  9. java8 String intern()

    public class Solution { public static void main(String[] args) { String a = new String("he" ...

  10. Swagger注解及参数细节的正确书写。

    今天新开了一个api文件,结果怎么搞也在swagger里显示不出来,浪费半天后,去问老员工了. 一般有俩原因, 1.idea缓存,重启idea即可. 2.注解和参数上的修饰有问题,或者请求method ...