2010-02-16 3 views
6

Possible en double:
Strict mode in PHP?Est-il quelque chose en PHP similaire à l'option explicite dans VB

Je fais un grand projet en PHP. En PHP, vous n'avez pas besoin de déclarer des variables. Cela cause beaucoup de problèmes pour moi.

Dans Visual Basic 6, l'instruction Option Explicit rend obligatoire la déclaration des variables. Est-ce que quelque chose de similaire est disponible en PHP?

+0

Qu'en est-il des fonctions non définies à l'intérieur si ce n'est pas en cours d'exécution? – Yosef

Répondre

6

Si vous activez les messages d'erreur E_NOTICE, PHP vous dira au sujet non initialisées variables

ini_set("error_reporting", E_ALL); 

Uninitialized est un peu différent de celui non déclaré, mais il devrait vous donner un effet similaire.

+3

+1 Il est également intéressant de noter que 'E_ALL' n'inclut pas 'E_STRICT'. Donc je ferais 'ini_set (" error_reporting ", E_ALL & E_STRICT);'. A noter également; Vous pouvez définir 'error_reporting' dans' php.ini' ou dans votre définition d'hôte virtuel Apache en utilisant 'php_value'. – Asaph

4
error_reporting(E_ALL); 

jette un avis lorsque vous essayez d'utiliser une variable non définie

une pointe plus générale: (max. 20 lignes) Au lieu d'utiliser les fonctions de code global, et les rendre petits. Comme les variables sont locales aux fonctions, il y a moins de chance d'oublier ou d'épeler un nom de variable.

1

L'augmentation de error reporting level n'affecte que le comportement de php lorsqu'une variable/un élément indéfini est utilisé comme valeur, comme echo $doesnotexist;.
Mais option explicit on interdit également l'utilisation de variables non déclarées comme lvalue

Option Explicit On 
Dim x As Integer 
x = 10 
y = 11 ' error, variable is not declared 

Il n'y a aucun paramètre d'option ou configuration similaire en php.

+0

Il pouvait y avoir un mot-clé déclaré en php5, esp. pour les classes/membres, mais il n'y en avait pas. – VolkerK

Questions connexes