Ist es gute Praxis, die Elemente in einem assoziativen Array in PHP zu initialisieren?
-
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?
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];
}