琐碎的问题。
假设我有以下代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$words = ['Apple', 'Avocado', 'Banana', 'Blueberry'];
$dict = [];
// build a dictionary keyed on the first letter
foreach ($words as $word) {
$letter = $word[0];
// is this condition necessary?
if (!isset($dict[$letter])) {
$dict[$letter] = [];
}
$dict[$letter][] = $word;
}
?>
通常当我构建一个字典时,在附加一个条目之前,我确保该数组存在,如我的例子中所示。
我一直认为会出现警告,但事实并非如此。
IF条件是否必要?
答案 0 :(得分:1)
来自official documentation on arrays(强调我的):
$arr[key] = value;
$arr[] = value;
// key may be an integer or string
// value may be any value of any type
如果
$arr
尚未存在,则会创建它,因此这也是一个 另一种创建数组的方法。然而,这种做法 气馁,因为如果$arr
已经包含某些值(例如字符串) 从请求变量)然后这个值将保留在该位置[]
实际上可能代表字符串访问运算符。 总是更好 通过直接分配初始化变量。
不会产生任何警告,但为了清楚起见,最好通过直接分配进行初始化,因为您一直在做。