Est-ce une bonne pratique d’initialiser les éléments d’un tableau associatif en php?
-
08-07-2019 - |
Question
Je me retrouve à faire beaucoup de choses avec les tableaux associatifs en PHP.
Je faisais ceci:
foreach ($item as $key=>$value) {
if ($arr[$key] == null) {
$arr[$key] = 0;
}
$arr[$key] += $other_arr[$value];
}
Mais ensuite, j'ai réalisé que cela fonctionnait bien si j'excluais la ligne qui initialise $ arr [$ key], probablement parce que c'est null, ce qui est traité comme la même chose que 0.
Est-ce que ce genre de supposition est sans danger en php? Et si c'est sûr, est-ce une bonne idée?
La solution
C'est sûr mais je le déconseille. Si vous transmettez votre rapport d'erreur à E_NOTICES, votre code en produira beaucoup, masquant ainsi les erreurs réelles (telles qu'un nom de variable mal saisi).
Ce que vous devriez vraiment faire, c'est:
if (!isset($arr[$key]))
$arr[$key] = 0;
Ceci ne générera pas d'avis (mais veillez à ne pas mal saisir $ arr dans isset ()).
Autres conseils
À partir de php 7
, vous pouvez maintenant effectuer les opérations suivantes:
foreach ($item as $key=>$value) {
$arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}