都是定义常量 下面的表格解释下两者的区别
只能使用在类成员 | 脚本全局都能使用 | 区分大小写 | 赋值类型 | 解释 | |
const | Y | N | Y | 静态标量 | 结构语句 编译快 |
define | N | Y | N | 可计算的变量 | 函数语句 能在条件语句使用 |
const 的定义及使用方法
class foo
{
const test = 'hehe';
}
echo foo::test;
echo constant('foo::test');
const 作为结构语句只能使用在 class 中,并且赋值必须是静态标量(类是c中的 #define CONST value ; 这里的value),还不能用在条件、循环语句中, 优点就是编译速度快
被const修饰的类成员属性可以当作静态属性调用 (foo::test)
define作为一个系统函数有更灵活的使用
总体来看 define跟你更灵活 而 const 更底层
const 的实现 就是define 的底层实现 ,define的下一层实现应该跟const 一样
为了速度可以多使用const (只能在class中)