質問

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];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top