Ist es gute Praxis, die Elemente in einem assoziativen Array in PHP zu initialisieren?

StackOverflow https://stackoverflow.com/questions/308835

  •  08-07-2019
  •  | 
  •  

Frage

Ich finde ich eine Menge Dinge mit assoziativen Arrays in PHP zu tun.

ich tue dies:

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

Aber dann erkannte ich, dass es funktioniert gut, wenn ich die Linie ausschließen, die $ arr [$ key] initialisiert, vermutlich da es null, die als das gleiche wie 0 behandelt wird.

macht diese Art der Annahme sicher in php? Und wenn es sicher ist, ist es eine gute Idee?

War es hilfreich?

Lösung

Es ist sicher, aber ich würde empfehlen, dagegen. Wenn Sie Ihren Fehler setzen Berichterstattung bis E_NOTICES Sie Ihren Code sehen Sie eine Menge von ihnen produzieren, Maskieren keine wirklichen Fehler (wie einem falsch geschriebenen Variablenname).

Was sollten Sie wirklich tun, ist:

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

Dies wird eine Bekanntmachung nicht erhöhen (aber sehr vorsichtig sein, nicht zu mis-Typ $ arr innerhalb isset ()).

Andere Tipps

Ab php 7 können Sie nun wie folgt vor:

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top