PHP5.6 CONST新特性几个例子

作者:袖梨 2022-06-24


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'));

相关文章

精彩推荐