<?php
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\'));

 

收藏 打印