[英]Find Element in PHP Array (if exists)
我想知道是否有更优雅的方法可以做到这一点:
$foo = (isset($bar) and array_key_exists('meh', $bar)) ? $bar['meh'] : '';
如果删除isset
部分,则$bar
不是数组时,PHP会发出警告;如果删除array_key_exists
部分,如果meh
键不在数组中,则PHP会发出警告。 有没有更优雅,更自由地达成目标的方式?
您可以直接引用密钥。 在isset
内部,如果$ bar未定义,它甚至不会引发异常。
$foo = isset($bar['meh']) ? $bar['meh'] : '';
array_key_exists和isset之间的区别在于,如果键对应于NULL
值,则isset
将返回FALSE
。 在上面的代码中, NULL
值将导致$foo
以空字符串开头,而不是NULL
。 如果这是一个问题,那么您当前的方法将是最好的。
您完全需要采取必要的步骤以针对提到的警告“保护”代码。
但是,出现警告是有原因的。 通常,检查是否更有意义,如果可以防止未初始化要访问的变量的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.