确定数组元素是否存在
检查数组中是否存在元素时,您描述的方法可能会导致 undefined索引错误。要有效解决此问题,您可以使用 isset 构造或 array_key_exists 函数。
使用 isset
isset 是速度优化的首选选项。它检查元素是否存在,无论其值如何。但是,对于已显式设置为 NULL 的元素,它会返回 false。
使用 array_key_exists
array_key_exists 确定数组中是否存在特定键。与 isset 不同,它不考虑与键关联的值。
示例:
考虑以下数组:
<code class="php">$a = array( 123 => 'glop', 456 => null, );</code>
使用 isset 进行测试:
<code class="php">var_dump(isset($a[123])); // true (key exists with a non-null value) var_dump(isset($a[456])); // false (key exists with a null value) var_dump(isset($a[789])); // false (key does not exist)</code>
使用 array_key_exists 进行测试:
<code class="php">var_dump(array_key_exists(123, $a)); // true (key exists regardless of value) var_dump(array_key_exists(456, $a)); // true (key exists regardless of value) var_dump(array_key_exists(789, $a)); // false (key does not exist)</code>
代码更新:
在您的代码中,您可以使用 isset 重写检查:
<code class="php">if (!isset(self::$instances[$instanceKey])) { $instances[$instanceKey] = $theInstance; }</code>
以上是如何确定数组中元素是否存在以避免错误的详细内容。更多信息请关注PHP中文网其他相关文章!