首页 >后端开发 >php教程 >哪个 PHP 构造更适合验证数组元素是否存在:isset 或 array_key_exists?

哪个 PHP 构造更适合验证数组元素是否存在:isset 或 array_key_exists?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-19 06:22:02590浏览

Which PHP Construct Is Better for Verifying Array Element Existence: isset or array_key_exists?

使用 isset 或 array_key_exists 验证数组元素是否存在

当寻求确定数组元素是否存在时,您可以使用 isset语言构造或 array_key_exists 函数。

isset

这种方法可能更有效,因为它不是函数。但是,如果元素存在但值为 NULL,则可能返回 false。

考虑以下数组:

<code class="php">$a = array(
    123 => 'glop', 
    456 => null, 
);</code>

使用 isset 测试元素是否存在:

<code class="php">var_dump(isset($a[123])); // true
var_dump(isset($a[456])); // false
var_dump(isset($a[789])); // false</code>

array_key_exists

相反,array_key_exists 仅评估键是否存在,而不管其值如何。

将 array_key_exists 与同一数组一起使用:

<code class="php">var_dump(array_key_exists(123, $a)); // true
var_dump(array_key_exists(456, $a)); // true
var_dump(array_key_exists(789, $a)); // false</code>

选择正确的方法

对于保证元素具有非 NULL 值的场景,isset 可能由于其效率而更可取。否则, array_key_exists 可能更合适。

在您的具体示例中,您可以使用 isset 修改代码如下:

<code class="php">if (!isset(self::$instances[$instanceKey])) {
    $instances[$instanceKey] = $theInstance;
}</code>

以上是哪个 PHP 构造更适合验证数组元素是否存在:isset 或 array_key_exists?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn