phpで連想配列の要素を初期化するのは良い習慣ですか?
-
08-07-2019 - |
質問
PHPの連想配列で多くのことをしていることに気づきました。
これをやっていた:
foreach ($item as $key=>$value) {
if ($arr[$key] == null) {
$arr[$key] = 0;
}
$arr[$key] += $other_arr[$value];
}
しかし、$ arr [$ key]を初期化する行を除外すると、おそらく0と同じように扱われるnullであるため、正常に動作することに気付きました。
そのような仮定をPHPで安全にしていますか?そして、それが安全であれば、それは良いアイデアですか?
解決
それは安全ですが、私はそれに対してお勧めします。 エラーレポートをE_NOTICESに設定すると、コードが多くのエラーを生成し、実際のエラー(変数名の入力ミスなど)がマスクされることがわかります。
本当にすべきことは:
if (!isset($arr[$key]))
$arr[$key] = 0;
これは通知を出しません(ただし、isset()内で$ arrを誤って入力しないように注意してください)。
他のヒント
php 7
以降、次のことができるようになりました。
foreach ($item as $key=>$value) {
$arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
所属していません StackOverflow