2010-09-13 9 views
5

Lors de l'écriture d'une application récente, j'ai accidentellement commencé à remplir une matrice avant de la déclarer. J'utilise le signalement d'erreur E_ALL et une erreur n'a pas été renvoyée. Est-ce correct? Et si oui, y a-t-il des problèmes avec la déclaration des valeurs de tableau sans jamais déclarer le tableau réel? Peut-être que cela ne respecte pas les bonnes normes de programmation.Est-ce qu'un tableau PHP doit être déclaré avant utilisation?

+0

Lorsque vous dites "non lancé", voulez-vous dire qu'il n'a pas été affiché à l'écran ou qu'il n'a pas été enregistré (si votre niveau d'enregistrement est correctement défini). S'il a été enregistré et n'affiche pas, vérifiez votre paramètre display_errors dans votre php.ini (Doit être réglé sur 1) - Ceci est une bonne référence: http://php.net/manual/fr/errorfunc.configuration.php – jlindenbaum

Répondre

4

Tout en écrivant une application récente, je accidentellement commencé à remplir un tableau avant que je l'avait déclaré.

PHP est une langue faiblement typée. Votre instruction:

$array['value'] = 'Test string'; 

est une déclaration implicite (par affectation) d'un tableau associatif. Donc, un avis ne sera pas généré.

Cependant, si vous deviez écrire:

echo $array['value']; 

devant un assigment, vous recevrez un avis Undefined variable.

3

Non, vous ne devez pas

Et oui, il est une bonne habitude de déclarer le tableau pour augmenter le code redability

2

développiez que, ne vous ne pas « avoir » à, mais cela peut être bénéfique. De plus, si E_NOTICES est désactivé, vous ne verrez pas les erreurs provenant d'une variable non-initialisée. En production, vous devez l'éteindre, mais en développement, vous devez l'activer. Cela vous permettra de trouver des problèmes que vous ne pourriez pas voir.

+1

Je suis d'accord. C'est toujours une bonne pratique de déclarer un tableau avant de l'utiliser. –

+3

En outre, aucune raison de l'éteindre sur la production. Je veux dire, si votre code est propre, rien ne sera signalé. –

+0

"En production, vous devriez l'éteindre" Pourquoi? Bien sûr "dev devrais résoudre les erreurs avant de prod", mais que faire si elles ne le font pas? Aussi improbable que cela puisse être, s'il y a des problèmes dans Prod, vous voulez les voir. Si vous avez des rapports d'erreur pour les afficher même dans Prod, et qu'il y a des erreurs, alors vous les attrapez, et s'il n'y a pas d'erreurs, il n'y a pas non plus de journaux. Il n'y a donc aucune raison de l'éteindre en production. – James

Questions connexes