如何确定PHP常量数组键是否存在?

时间:2016-08-01 13:13:02

标签: php arrays key constants exists

我想在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) 

2 个答案:

答案 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){

}