
PHP中有两种定于常量的方式define和const,两者有以下区别:
1.const是一种语言结构,而define是一个函数。
2.const可以在类中使用,而define不可以。在PHP5.3以前,const只能在类中使用,而PHP5.3开始在类外也可以使用。
3.const不能在条件分支中使用,而define可以。
4.const只能用普通的常量名称,define可以使用表达式。
5.const在PHP5.6之前只接受静态的标量,从PHP5.6开始可以使用表达式,define可以使用表达式。
6.const定义的常量是大小写敏感的,而define可以通过第三个参数来指定是否大小写敏感(true不敏感;false敏感,默认为false)。
7.const定义常量时考虑命名空间,而define不会。简单来说就是const可以在不同的命名空间下定义同名的常量,而define则不可以。
常量可以通过常量名直接访问,也可以通过constant()函数访问,通过get_defined_constants()可以获得所有已定义的常量。
<?php @header("Content-type: text/html; charset=utf-8"); const const1="constvalue1"; define("const2","constvalue2",true); echo const1."\n"; echo constant("const1")."\n"; echo const2."\n"; echo Const2."\n"; class Test{ const constInClass="inClass"; function test(){ if(true){ define("const"."InIfElse","inIfElse",true); } } } echo Test::constInClass."\n"; $test = new Test; echo constInIfElse."\n"; const number=1<<5; echo number."\n"; print_r(get_defined_constants()); ?>
文章来源: PHP中define和const的区别
人吐槽 | 人点赞 |
发表评论