为了账号安全,请及时绑定邮箱和手机立即绑定

包含数组的PHP常量?

包含数组的PHP常量?

PHP
慕斯709654 2019-07-25 15:41:32
包含数组的PHP常量?这失败了: define('DEFAULT_ROLES', array('guy', 'development team'));显然,常量不能保存数组。解决这个问题的最佳方法是什么?define('DEFAULT_ROLES', 'guy|development team');//...$default = explode('|', DEFAULT_ROLES);这似乎是不必要的努力。
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

注意:虽然这是公认的答案,但值得注意的是,在PHP 5.6+中你可以拥有const数组 - 请参阅下面的Andrea Faulds的回答

您还可以序列化您的数组,然后将其放入常量:

# define constant, serialize arraydefine ("FRUITS", serialize (array ("apple", "cherry", "banana")));# use it$my_fruits = unserialize (FRUITS);


查看完整回答
反对 回复 2019-07-25
?
慕容3067478

TA贡献1773条经验 获得超3个赞

从PHP 5.6开始,您可以声明一个数组常量const

<?phpconst DEFAULT_ROLES = array('guy', 'development team');

正如您所期望的那样,短语法也有效:

<?phpconst DEFAULT_ROLES = ['guy', 'development team'];

如果你有PHP 7,你可以最终使用define(),就像你第一次尝试一样:

<?phpdefine('DEFAULT_ROLES', array('guy', 'development team'));


查看完整回答
反对 回复 2019-07-25
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以将它们存储为类的静态变量:

class Constants {
    public static $array = array('guy', 'development team');}# Warning: array can be changed lateron, so this is not a real constant value:Constants::$array[] = 'newValue';

如果您不喜欢其他人可以更改阵列的想法,那么getter可能有所帮助:

class Constants {
    private static $array = array('guy', 'development team');
    public static function getArray() {
        return self::$array;
    }}$constantArray = Constants::getArray();

编辑

从PHP5.4开始,甚至可以访问数组值而无需中间变量,即以下工作:

$x = Constants::getArray()['index'];


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 494 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信