91 votes

Est-il nécessaire de déclarer un tableau PHP avant d'ajouter des valeurs w / []?

 $arr = array(); // is this line needed?
$arr[] = 5;
 

Je sais que cela fonctionne sans la première ligne, mais cela fait souvent partie de la pratique.

Quel est le raisonnement? Est-ce dangereux sans cela?

Je sais que tu peux aussi faire ça:

  $arr = array(5);
 

mais je parle de cas où vous devez ajouter des éléments un par un.

94voto

djdy Points 3497

Si vous ne déclarez pas un nouveau tableau et que les données qui créent / mettent à jour le tableau échouent pour quelque raison que ce soit, tout code à venir qui essaiera d'utiliser le tableau sera E_FATAL car ce tableau n'existe pas.

Par exemple, foreach() générera une erreur si le tableau n'a pas été déclaré et qu'aucune valeur n'y a été ajoutée. Cependant, aucune erreur ne se produira si le tableau est simplement vide, comme ce serait le cas si vous l'aviez déclaré.

27voto

cspray Points 4979

Je voulais simplement faire remarquer que la documentation PHP sur arrays fait pourparlers à ce sujet dans la documentation.

À partir de PHP site, avec l'accompagnement d'un extrait de code:

$arr[key] = value;
$arr[] = value;
// key may be an integer or string
// value may be any value of any type

"Si $arr n'existe pas encore, il sera créé, donc c'est aussi une autre façon de créer un tableau."

Mais, comme l'a d'autres réponses a déclaré...vraiment, vous devez déclarer la valeur de vos variables, car toutes sortes de mauvaises choses peuvent se produire si vous n'avez pas.

14voto

AlienWebguy Points 42370

Php est un langage mal typé. C'est parfaitement acceptable. Cela étant dit, les vrais programmeurs déclarent toujours leurs vars.

7voto

Rob Agar Points 5793

Pensez aux codeurs qui viennent après vous! Si vous ne voyez que $arr[] = 5 , vous n'avez aucune idée de ce que pourrait être $arr sans lire tout le code précédent dans l'étendue. La ligne explicite $arr = array() rend clair.

4voto

Julien Points 681

c'est juste une bonne pratique. Supposons que vous ajoutiez à votre tableau à l'intérieur d'une boucle (pratique assez courante), mais que vous accédiez ensuite au tableau à l'extérieur de cette boucle. Sans déclaration de tableau, votre code générerait des erreurs si vous ne le faisiez jamais dans la boucle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X