如何检查是否设置了A\B::X ['Y'] ['Z']这样的常量元素?

<?php

namespace A;

class B
{
    const X = [
        'Y' => [
            'Z' => 'value'
        ]
    ];
}

var_dump(defined('\A\B::X') && isset(\A\B::X['Y']['Z']));
Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in [...] on line 13

最佳答案

isset仅适用于变量。您可以使用以下代码来检查A\B::X['Y']['Z']是否存在:

var_dump(
    defined('\A\B::X') &&
    array_key_exists('Y', \A\B::X) &&
    array_key_exists('Z', \A\B::X['Y'])
);

关于php - 检查PHP 5.6中类的数组常量中元素的存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34843643/

10-11 22:59
查看更多