1

PHPで連想配列を使って多くのことをしていることに気づきました。

私はこれをしていました:

 foreach ($item as $key=>$value) {
     if ($arr[$key] == null) {
         $arr[$key] = 0; 
     }
     $arr[$key] += $other_arr[$value];
 }

しかし、$arr[$key] を初期化する行を除外すると、おそらく 0 と同じように扱われる null であるため、正常に動作することに気付きました。

そのような仮定をphpで安全にしていますか? そして、それが安全であれば、それは良い考えですか?

4

2 に答える 2

7

安全ですが、お勧めしません。エラー報告を E_NOTICES まで上げると、コードが多くのエラーを生成し、実際のエラー (変数名のタイプミスなど) を隠していることがわかります。

あなたが本当にすべきことは次のとおりです。

if (!isset($arr[$key]))
    $arr[$key] = 0;

これにより通知は発生しません (ただし、isset() 内で $arr を誤って入力しないように注意してください)。

于 2008-11-21T13:57:16.700 に答える