常量一旦定义就不能在改变或者取消。 在php中定义常量可以使用define()函数,在php5.3之后同样可以使用const关键字来定义常量。

define 和 const的区别

语法区别

// 使用define定义常量
define("Pi",3.14);
// 使用const定义常量
const Pi1 = 3.14
复制代码

定义时期区别

define() 在执行期定义常量,而 const 在编译期定义常量。 这就意味着不能在函数内,循环内以及 if 语句之内用 const 来定义常量。

 if( true){define("STEP",1);}
=> trueif( true ){                   const STEP = 1;                                                                                  }
PHP Parse error: Syntax error, unexpected T_CONST on line 2
>>>
复制代码

命名空间

define() 定义常量在全局根命名空间下面,而const定义的常量会在当前的命名空间下面。

>>> namespace Test;
>>> define("TEST","test");
=> true
>>> echo  \Test\TEST;
PHP Fatal error:  Undefined constant Test\TEST in eval()'d code on line 1
>>> echo  \TEST;
test⏎
>>> const TEST1 = "test";
>>> echo \Test\TEST1
test⏎
>>> echo \TEST1
PHP Error:  Undefined constant 'TEST1' on line 3
>>>
复制代码

表达式

define允许你在常量名和常量值中使用表达式,const不支持,这使得define很灵活

define('TRANSPORT_METHOD_SNEAKING', 1 << 0); // OK!
const TRANSPORT_METHOD_WALKING = 1 << 1; //Compile error! const can't use expressions as values
复制代码

类常量

可以把在类中始终保持不变的值使用const定义为常量,define不能在类中定义常量

<?php
class MyClass
{const constant = 'constant value';function showConstant() {echo  self::constant . "\n";}
}echo MyClass::constant . "\n";$classname = "MyClass";
echo $classname::constant . "\n"; // 自 5.3.0 起$class = new MyClass();
$class->showConstant();echo $class::constant."\n"; // 自 PHP 5.3.0 起
?>
复制代码

原文链接 github.com/DanceSmile/…

转载于:https://juejin.im/post/5aa0dec6f265da239f06f141

php定义常量 define vs const相关推荐

  1. jquery 定义php变量,php定义常量_php 定义常量define与普通变量

    摘要 腾兴网为您分享:php 定义常量define与普通变量,中信期货,中国体育,中国搜索,小米钱包等软件知识,以及ps人像插件,河南电大在线,自拍神器手机,国金证券,ipa包,微商加人软件,山东省地 ...

  2. PHP常量:define和const的不同之处

    1.定义 常量是一个简单的标识符.在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量).常量默认大小写敏感.通常常量标识符总是大写的. 可以用define()函数来定义常量.在php5. ...

  3. PHP常量详解:define和const的区别

    常量是一个简单的标识符.在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量).常量默认大小写敏感.通常常量标识符总是大写的. 可以用define()函数来定义常量.在php5.3.0以后 ...

  4. #define 定义常量和宏,指针和结构体

    目录 #define 定义常量和宏 #define 定义常量 #define 定义宏 指针 内存 指针变量的大小 结构体 #define 定义常量和宏 #define 定义常量 在变量和常量2,#de ...

  5. 【ES6 教程】第一章 新的ES6语法03—使用const 关键字定义常量

    英文 | https://www.javascripttutorial.net 翻译 | 杨小爱 在本教程中,我们将学习如何使用 JavaScript const 关键字定义常量. JavaScrip ...

  6. define() vs const 该如何选择?

    使用 define(),除非考虑到可读性.类常量.或关注微优化 1.在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量 ...

  7. ios项目 swift 定义常量 其他文件引用_面试应该注意的Swift知识点

    1. 给一个数组,要求写一个函数,交换数组中的两个元素 二X程序员: 好简单啊,直接写出以下结果 func swap(_ nums: inout [Int], _ p: Int, _ q: Int) ...

  8. C++ 笔记(07)— 常量(字面常量、const定义常量、constexpr 定义常量、enum 定义常量、define 定义常量)

    在 C++ 中,常量类似于变量,只是不能修改.与变量一样,常量也占用内存空间,并使用名称标识为其预留的空间的地址,但不能覆盖该空间的内容. 常量可以是任何的基本数据类型,可分为整型数字.浮点数字.字符 ...

  9. 在定义常量时,为什么推荐使用const,而不是#define?

    在定义常量时,为什么推荐使用const,而不是#define? const修饰词可以将一个变量修饰为"只读",这个就能称为常量么?姑且认为可以.const是只读的意思,它限定一个变 ...

最新文章

  1. 某大厂程序员哀叹:千万不要从大厂往小厂跳,后悔死了!小厂只会逼迫压榨,刚来就一个劲要产出!...
  2. YTU_3137: 动态规划基础题目之拦截导弹
  3. lesson5 元组
  4. CF932G-Palindrome Partition【PAM】
  5. exploration 和 exploitation 的区别
  6. 数据库的表连接和函数学习
  7. 打开VScode一直弹报错,错误 unins000.exe,不能正常更新
  8. 伺服舵机四方运动程序以及角度确定
  9. U盘修复“系统找不到指定文件”问题解决方法
  10. PostgreSQL - 一文看懂explain
  11. 软件工程——实体关系图 + 状态转换图 + 数据流图
  12. 有关H5第二章排列页面内容介绍
  13. linux防火墙(firewall、iptable)
  14. switch命令大全
  15. 云计算与大数据平台课堂作业
  16. JDBC数据库连接测试工具
  17. 安兔兔电脑ssd测试软件,安兔兔SSD测试软件测评,威钰战国NVMe SSD
  18. Matlab调用百度API画地图讲解教程
  19. 「C++简单实现斗地主」机关算尽的地主,却低估了我的实力
  20. Android 通过代码执行shell命令获取电量百分比

热门文章

  1. 一个嵌入式硬件驱动模块通常应包括哪些函数?
  2. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
  3. prototype原型模式
  4. 虚方法(virtual)和抽象方法(abstract)的区别
  5. spring 定时任务执行两次解决办法
  6. mysql query cache优化
  7. “代理”那点事儿-使用代理和搭建简单代理服务
  8. win 7 系统激活工具
  9. 原来SMPlayer可以直接播放音乐CD碟
  10. OpenCV SIFT检测关键点