我想在PHP 5.6中使用数组作为常量。问题是:如何检查密钥是否为' a'存在于数组中并获得" Test2"也是如此?
我的代码现在是这样的:
const ARR = array(
'a' => 'first',
'b' => 'second'
);
$test1 = defined("ARR");
$test2 = defined("ARR['a']");
echo '<br>Test1: ';
var_dump($test1);
echo '<br>Test2: ';
var_dump($test2);
结果:
Test1: bool(true)
Test2: bool(false)
答案 0 :(得分:2)
您需要使用array_key_exists功能
var_dump(array_key_exists('a', ARR));
defined()检查是否定义了常量,因此你可以另外检查常量是否是is_array(ARR);
的数组
示例:强>
<?php
const ARR = array(
'a' => 'first',
'b' => 'second'
);
$test1 = array_key_exists('a', ARR);
$test2 = array_key_exists('c', ARR);
echo 'Test1: ';
var_dump($test1);
echo 'Test2: ';
var_dump($test2);
<强>输出:强>
Test1: bool(true)
Test2: bool(false)
<强>注意:强>
它仅适用于PHP版本&gt; = 5.6 Working fiddle
答案 1 :(得分:0)
在php7+
中,您可以使用空合并:
if(self::ARR['a']??false){
}