繁体   English   中英

在PHP数组中查找元素(如果存在)

[英]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_existsisset之间的区别在于,如果键对应于NULL值,则isset将返回FALSE 在上面的代码中, NULL值将导致$foo以空字符串开头,而不是NULL 如果这是一个问题,那么您当前的方法将是最好的。

您完全需要采取必要的步骤以针对提到的警告“保护”代码。

但是,出现警告是有原因的。 通常,检查是否更有意义,如果可以防止未初始化要访问的变量的情况。

暂无
暂无

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

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