常量和变量有以下不一样:php
一、常量前面没有美圆符号($)二、常量只能经过define()函数定义,而不能经过赋值语句函数
三、常量能够不用理会变量的做用域在任何地方定义和访问code
四、常量一旦定义就不能从新定义或取消定义作用域
五、常量的值只能是标量get
<?php // 如下代码在 PHP 5.3.0 后能够正常工做 const USERNAME = 'zhouguowei'; echo USERNAME; echo constant("USERNAME"); const ZHOUUSERNAME = 'zhouguowei2222222222'; define('MYUSERNAME','zhouguowei1111111'); echo "<pre>"; print_r(get_defined_constants()); ?>
问:在php中定义常量时,const和define的区别?
答:使用const使得代码简单易读,const自己就是一个语言结构,而define是一个函数。另外const在编译时要比define快不少。一、const用于类成员变量的定义,一经定义,不可修改。Define不能够用于类成员变量的定义,可用于全局常量。
二、Const可在类中使用,define不能
三、Const不能再条件语句中定义常量string
<?php if (...){ const FOO = 'BAR'; // 无效的invalid } if (...) { define('FOO', 'BAR'); // 有效的valid } ?>
四、const采用普通的常量名称,define能够采用表达式做为名称
<?php const FOO = 'BAR'; for ($i = 0; $i < 32; ++$i) { define('BIT_' . $i, 1 << $i); } ?>
五、const只能接受静态的标量,而define能够采用任何表达式
<?php const BIT_5 = 1 << 5; // 无效的invalid define('BIT_5', 1 << 5); // 有效的valid ?>
六、const定义的常量时大小写敏感,而define能够经过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。
<?php define('FOO', 'BAR', true); echo FOO; // BAR echo foo; // BAR ?>