资讯专栏INFORMATION COLUMN

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

netmou / 642人阅读

摘要:常量是一个简单的标识符。常量默认大小写敏感。通常常量标识符总是大写的。常量只能包含标量数据和。可以定义常量,但应尽量避免,因为会造成不可预料的结果。用于类成员变量的定义,一经定义,不可修改。

常量是一个简单的标识符。在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量)。常量默认大小写敏感。通常常量标识符总是大写的。
可以用define()函数来定义常量。在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,先前版本const关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或取消定义。
常量只能包含标量数据(boolean、integer、float和string)。可以定义resource常量,但应尽量避免,因为会造成不可预料的结果。
可以简单的通过指定其名字来获得常量的值,与变量不同,不应该在常量的前面加上$符号。如果常量名是动态的,也可以用函数constant()来获取常量的值。用get_defined_contstants()可以获得所有已定义的常量列表。

常量和变量有如下不同:

1、常量前面没有美元符号($)

2、常量只能通过define()函数定义,而不能通过赋值语句

3、常量可以不用理会变量的作用域在任何地方定义和访问

4、常量一旦定义就不能重新定义或取消定义

5、常量的值只能是标量

";
print_r(get_defined_constants());  
?>
问:在php中定义常量时,const和define的区别?
答:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。

1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。
2、Const可在类中使用,define不能
3、Const不能再条件语句中定义常量

4、const采用普通的常量名称,define可以采用表达式作为名称
5、const只能接受静态的标量,而define可以采用任何表达式
6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31510.html

相关文章

  • [翻译]PHPdefine()const定义常量区别

    摘要:从开始也允许把表达式用作常量的值了。具有更好的可读性,是语言结构而不是函数,而且与在类中定义类常量的形式保持一致。众所周知在用定义了大量的常量后会影响效率。人们设置发明了和来绕过导致的效率问题。 在PHP中可以通过define()和const两种方式定义常量可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5...

    qqlcbb 评论0 收藏0
  • [PHP]常量定义: constdefine区别运用; 附constant解释

    摘要:常量默认为大小写敏感。一个常量一旦被定义,就不能再改变或者取消定义。常量只能包含标量数据,,和,不能是表达式。可以定义常量,但应尽量避免,因为会造成不可预料的结果。 前言 常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。通常常量标识符总是大写的。 在 PHP 5.3.0 之前可以用 defi...

    appetizerio 评论0 收藏0
  • php const define 区别

    摘要:但是前者比后者有更多的优点常量有数据类型,而宏常量没有数据类型。有些集成化的调试工具可以对常量进行调试,但是不能对宏常量进行调试。由于定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用修饰数据成员来实现。 (1) 编译器处理方式不同  define宏是在预处理阶段展开。  const常量是编译运行阶段使用。(2) 类型和安全检查不同  define宏没有类型,不做任何类型检查,...

    teren 评论0 收藏0
  • javascript 声明变量var、let、const详解及示例

    摘要:概述发布前,只能通过声明变量的方式,常量块级变量函数变量这些概念的差别都不能很好的体现出来,于此同时,加入你要使用或者提供一个,声明的变量可随时被修改和重新分配的问题,会让你时刻担心代码是否能正常运行。 1. var、let、const概述 ES6发布前,Javascript只能通过var声明变量的方式,常量、块级变量、函数变量这些概念的差别都不能很好的体现出来,于此同时,加入你要使用...

    tuomao 评论0 收藏0
  • 面试题整理

    摘要:一个数据库的状态是否正常可以从哪些指标看出来,至少列出个答以及正在运行的进行监控,其中一个方式就是查看运行状态。 、一个数据库的状态是否正常可以从哪些指标看出来,至少列出2个 答QPS以及IOPS 正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态。 (1)QPS(每秒Query量) QPS = Questions(or Queries...

    MartinDai 评论0 收藏0

发表评论

0条评论

netmou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<