使用 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中文网其他相关文章!