PHP 常量包含数组?
此操作失败:
define('DEFAULT_ROLES', array('guy', 'development team'));
显然,常量不能容纳数组。解决这个问题的最佳方法是什么?
define('DEFAULT_ROLES', 'guy|development team');
//...
$default = explode('|', DEFAULT_ROLES);
这似乎是不必要的努力。
此操作失败:
define('DEFAULT_ROLES', array('guy', 'development team'));
显然,常量不能容纳数组。解决这个问题的最佳方法是什么?
define('DEFAULT_ROLES', 'guy|development team');
//...
$default = explode('|', DEFAULT_ROLES);
这似乎是不必要的努力。
从 PHP 5.6 开始,您可以使用以下命令声明一个数组常量:const
<?php
const DEFAULT_ROLES = array('guy', 'development team');
正如您所期望的那样,短语法也有效:
<?php
const DEFAULT_ROLES = ['guy', 'development team'];
如果你有 PHP 7,你终于可以使用 ,就像你第一次尝试一样:define()
<?php
define('DEFAULT_ROLES', array('guy', 'development team'));
注意:虽然这是公认的答案,但值得注意的是,在 PHP 5.6+ 中,你可以有 const 数组 - 请参阅下面 Andrea Faulds 的答案。
还可以序列化数组,然后将其放入常量中:
# define constant, serialize array
define ("FRUITS", serialize (array ("apple", "cherry", "banana")));
# use it
$my_fruits = unserialize (FRUITS);