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

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

定义形式

  • 使用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. TX2开发板Ubuntu16.04安装中文输入法

    打开终端输入安装输入法: sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin ...

  2. 当DIV内出现滚动条,fixed实效怎么办?

    sticky    盒位置根据正常流计算(这称为正常流动中的位置),然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位.在所有情况下( ...

  3. centos 7.4 磁盘空间不足,扩容根分区 --lvm模式

    背景:根分区磁盘空间不足,需要扩容root磁盘空间 1.查看现有磁盘信息,可以看出根分区有26G [root@localhost ~]# df -h 2.查看新增加的磁盘信息(改虚拟机已经添加好了,不 ...

  4. 吴裕雄--天生自然 JAVASCRIPT开发学习:作用域

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. part11 Vue项目接口联调//真机测试

    何为项目接口联调? 前端代码编译好了  后端接口写好了 我们就需要去掉前端模拟数据干掉 用后端提供的数据.进行前后端的一个调试 如何联调? config目录下面 index.js 文件 dev 中pr ...

  6. HDU 5312:Sequence

    Sequence  Accepts: 25  Submissions: 1442  Time Limit: 2000/2000 MS (Java/Others)  Memory Limit: 2621 ...

  7. MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信

    服务器端发送数据给客户端 先看服务器端: CAsyncSocket m_sockSend;                       //声明一个Socket对象 点击发送数据后,执行下面这些动作 ...

  8. python中的with用法

    with是从Python2.5引入的一个新的语法,它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和 资源分配释放相关代码统统去掉,简化try….excep ...

  9. cat <<EOF> file

    .多行导入文件(新建文件或者覆盖文件内容)   cat << EOF > abcd.txt Hello! This is a test file! Test for cat and ...

  10. SpringCloud学习之Ribbon使用(四)

    1.关于 Ribbon Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡的工具.Ribbon 是 Netflix 发布的开源项目,主要功能是提供客 ...