【问题标题】:How to determine whether PHP constant array key exists?如何判断PHP常量数组键是否存在?
【发布时间】:2016-12-06 14:16:15
【问题描述】:

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

【问题讨论】:

  • $test2 = isset(ARR['a']); (PHP7)

标签: php arrays key constants exists


【解决方案1】:

你需要使用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 版本 >= 5.6 Working fiddle

【讨论】:

【解决方案2】:

php7+ 中,您可以使用空值合并:

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多