如何检查数组元素是否存在?

如何检查数组元素是否存在?,第1张

如何检查数组元素是否存在?

您可以使用语言构造

isset
函数
array_key_exists

isset
应该更快一些 (因为它不是函数) ,但是如果元素存在并且具有value,则将返回false
NULL

例如,考虑以下数组:

$a = array(    123 => 'glop',     456 => null, );

和这三个测试,依赖于

isset

var_dump(isset($a[123]));var_dump(isset($a[456]));var_dump(isset($a[789]));

第一个会得到您( 该元素存在,并且不为null)

boolean true

虽然第二个可以帮助您 (该元素存在,但为null)

boolean false

最后一个会让你 (该元素不存在)

boolean false

另一方面,

array_key_exists
像这样使用:

var_dump(array_key_exists(123, $a));var_dump(array_key_exists(456, $a));var_dump(array_key_exists(789, $a));

您将获得这些输出:

boolean trueboolean trueboolean false

因为在前两种情况下,元素存在-即使在第二种情况下为null。而且,当然,在第三种情况下,它不存在。

对于像您这样的情况,我通常会使用

isset
,考虑到我永远不会在第二种情况下…但是,现在选择要使用哪种方式取决于您;-)

例如,您的代码可能会变成这样:

if (!isset(self::$instances[$instanceKey])) {    $instances[$instanceKey] = $theInstance;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5600105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存