Est-ce une bonne pratique d’initialiser les éléments d’un tableau associatif en php?

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

  •  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?

Était-ce utile?

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];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top