PHP5.6起CONST新特性定义类常量可以使用常量标量表达式(Constant scalar expressions),例如:
class MyTimer {
const SEC_PER_DAY = 60 * 60 * 24;
}
?>
define和CONST的区别是define可以用于定义全局常量,而CONST是定义类的常量。
static静态变量与define,CONST的区别是static定义的变量是可以改变的,而后两者不行,并且static静态变量是随类直接在内存中初始化,可以直接用,如$oneclass::hobby.
define可以定义数组吗?例如define(‘A_ARRAY’,array(‘o’=>’ooo’,’x’=>’xxx’)).
在PHP5.6之前是不行的,但是可以通过serialize把数组序列化,如:
# define constant, serialize array
define ("FRUITS", serialize (array ("apple", "cherry", "banana")));
# use it
$my_fruits = unserialize (FRUITS);
PHP5.6之后可以直接const定义一个数组:
const DEFAULT_ROLES = array('guy', 'development team');
或者:
const DEFAULT_ROLES = ['guy', 'development team'];
如果是PHP7,可以直接用define定义数组:
define('DEFAULT_ROLES', array('guy', 'development team'));