【问题标题】:Can i use nested arrays in const in PHP我可以在 PHP 的 const 中使用嵌套数组吗
【发布时间】:2017-02-20 12:52:33
【问题描述】:

我知道 const 可以接受一个数组,但我想要一个包含嵌套数组的常量。这可能吗?

const DAYS_OFF = array(
  'holidays' => array(
    'newYear' => '1 January'
  )
)

谢谢

【问题讨论】:

  • 你试过了吗?
  • 你遇到了什么问题?
  • 如果某个答案解决了您的问题,请考虑接受该答案。以下是meta.stackexchange.com/questions/5234/… 然后返回此处并对勾号/复选标记执行相同操作直到它变为绿色的方法。这通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,可能想要发布(更多)答案。您将获得积分,并鼓励其他人帮助您。 欢迎来到 Stack!

标签: php constants


【解决方案1】:

是的,您可以在常量中使用嵌套数组。数组就是数组,与深度无关:

const DAYS_OFF = array(
  'holidays' => array(
    'newYear' => '1 January'
  )
);

print_r(DAYS_OFF);

返回:

Array
(
    [holidays] => Array
        (
            [newYear] => 1 January
        )

)

echo DAYS_OFF['holidays']['newYear'];

返回

1 月 1 日

【讨论】:

  • 在 PHP 5.6 中不起作用“解析错误:语法错误,意外的 'const' (T_CONST) in”
  • 此代码在 PHP 5.6 中经过测试,可在多个平台上运行。使用此沙箱:sandbox.onlinephpfunctions.com
【解决方案2】:

仅适用于 PHP 7

<?php
    define('DAYS_OFF', array(
                    'holidays' => array(
                        'newYear' => '1 January'
                    )
                ));
    print_r(constant("DAYS_OFF"));
?>

【讨论】:

  • @JayBlanchard 带有数组(缩放器)值的定义仅适用于 PHP 7。
  • 虽然标量定义仅适用于 PHP7,但您不需要 constant() 函数。你可以print_r(DAYS_OFF);
猜你喜欢
  • 2014-07-22
  • 1970-01-01
  • 2012-02-27
  • 2012-08-08
  • 2021-06-07
  • 2016-12-07
  • 2020-04-23
  • 2015-11-22
  • 1970-01-01
相关资源
最近更新 更多