繁体   English   中英

如何判断PHP常量数组key是否存在?

[英]How to determine whether PHP constant array key exists?

我想在 PHP 5.6 中使用数组作为常量。 问题是:如何检查数组中是否存在键“a”并使“Test2”也返回true?

我现在的代码是这样的:

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) 

您需要使用array_key_exists函数

var_dump(array_key_exists('a', ARR));

defined() 检查常量是否已定义,因此您可以使用is_array(ARR);额外检查常量是否为数组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 版本 >= 5.6 工作小提琴

php7+您可以使用空合并:

if(self::ARR['a']??false){

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM