PHP:define和const的区别
发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,1、我们通常把不经常变的值定义成常量,常量一般用全部大写字母表示,前面不加美元符号$,默认区分大小写。比如 文件路径:const FilePath = 'commentBook.txt';就可以定义为
1、我们通常把不经常变的值定义成常量,常量一般用全部大写字母表示,前面不加美元符号$,默认区分大小写。比如 文件路径:const FilePath = 'commentBook.txt';就可以定义为常量。
2、一个常量一旦被定义,就不能再改变或取消定义。
3、常量只能包含标量数据(boolean、integer、float和string)。可以定义resource常量,但应尽量避免,因为会造成不可预料的结果。
常量和变量有如下不同:
1、常量前面没有美元符号($)
2、常量只能通过define()函数定义,而不能通过赋值语句
3、常量可以不用理会变量的作用域在任何地方定义和访问
4、常量一旦定义就不能重新定义或取消定义
5、常量的值只能是标量
问:在php中定义常量时,const和define的区别?
答:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。
1、const可在类中使用,用于类成员变量的定义,一经定义,不可修改。define不可以用于类成员变量的定义,可用于全局常量。
class Car{ const CONS = '我是常量'; echo self::CONS; //如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,否则用$this}
2、const是在编译时定义,因此必须处于最顶端的作用区域,不能在函数,循环及if条件中使用;而define是函数,也就是能调用函数的地方都可以使用
if(){ const CONS = '我是常量'; //错误}if(){ define('CONS','我是常量'); //正确}
3、const是一个语言结构;而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false,即大小写敏感。
如:define('PI',3.14,true);
4、const只能采用普通的常量名称,define可以采用表达式作为名称
const CONS = 'car';for($i=0;$i<10;$i++){ define('BIT_'.$i,1<<$i);}
5、const只能接受静态的标量,而define可以采用任何表达式
const CONS = 1<<5; //无效的常量define('CONS',1<<5); //有效的常量