1、定义常量define与const的区别
define('PI',3.14,true); const PI 3.14;
①const是一个语言结构,而define是一个函数。define的第三个参数来指定是否区分大小写,true表示不区分,默认为false
②const简单易读,编译时要比define快很多
③const可以在类中使用,用于类成员常量定义。define不能在类中使用,可用于全局变量
④const是在编译时定义,因此必须处于最顶端的作用域,不能在函数、循环和if条件找那个使用。而define是函数,在任何能够调用函数的地方都能使用
⑤const的常量名必须是普通的常量名,define的常量名中可以有表达式
⑥const定义的常量只能是静态常量,define可以是任意表达式
④样例 if (...){ const FOO = 'BAR'; // 无效的invalid } if (...) { define('FOO', 'BAR'); // 有效的valid } ⑤样例 const FOO = 'BAR'; for ($i = 0; $i < 32; ++$i) { define('BIT_' . $i, 1 << $i); } ⑥样例 const BIT_5 = 1 << 5; // valid since PHP 5.6 define('BIT_5', 1 << 5); // 有效的valid