我正试图找到一种干净的方法来检查动态定义的值是否为某个值。如果该变量等于被测试的变量,它应该评估为真,如果它不匹配或者变量不存在则为false,例如:
if($array[$with][$some][$depth]==$test)
这将正确评估,但它会抛出通知错误if $array[$with][$some][$depth]
实际上不是变量。
我无法做到
if(array_key_exists($depth, $array[$with][$some]) && $array[$with][$some][$depth]==$test)
因为上层数组可能不存在(可能有任意数量的级别)
答案 0 :(得分:1)
只需使用isset
作为后卫。您不需要一步一步地执行此操作:
if(!isset($array[$with][$some][$depth]) || $array[$with][$some][$depth]!=$test) {
// either does not exist, or has other value
}
此处唯一的缺点是,如果您要测试的值为null
,isset
将返回false
,这不是您想要的。