首页 > 代码库 > 12)PHP,常量和魔术常量

12)PHP,常量和魔术常量

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

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

定义形式

  • 使用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,常量和魔术常量