Quel est le PHP message d'erreur “remarque: l'Utilisation de la constante indéfinie” signifie?
PHP est écrit cette erreur dans les logs: "remarque: l'Utilisation de la constante indéfinie".
D'erreur dans les logs:
PHP Notice: Use of undefined constant department - assumed 'department' (line 5)
PHP Notice: Use of undefined constant name - assumed 'name' (line 6)
PHP Notice: Use of undefined constant email - assumed 'email' (line 7)
PHP Notice: Use of undefined constant message - assumed 'message' (line 8)
Lignes de code:
$department = mysql_real_escape_string($_POST[department]);
$name = mysql_real_escape_string($_POST[name]);
$email = mysql_real_escape_string($_POST[email]);
$message = mysql_real_escape_string($_POST[message]);
Que signifie et pourquoi suis-je le voir?
Vous devez vous connecter pour publier un commentaire.
Vous devez citer vos clés de tableau:
Il était à la recherche pour les constantes appelé
department
,name
,email
,message
, etc. Quand il ne trouve pas une telle constante, PHP (bizarrement) l'interprète comme une chaîne de caractères ('département', etc). Bien évidemment, cela peut facilement se briser si vous ne les définit une constante plus tard (même si c'est mauvais style est moins le cas où les constantes).Le message d'erreur est dû au fait regrettable que PHP va implicitement déclarer un jeton inconnu comme une constante de la chaîne du même nom.
Qui est, il est tentant d'interpréter ceci (notez le manque les guillemets):
La seule méthode valide ce serait une erreur de syntaxe PHP est si il y avait auparavant une constante
department
défini. Donc, malheureusement, plutôt que de mourir avec une erreur Fatale à ce point, il émet cet Avis et agit comme une constante ont été définis avec le même nom et la valeur:Il ya plusieurs façons que vous pouvez obtenir ce message d'erreur, mais ils ont tous la même cause - d'un jeton pourrait être une constante.
Chaînes manquantes citations:
$my_array[bad_key]
C'est ce que le problème est dans votre cas, et c'est parce que vous avez une chaîne de la matrice de touches qui n'ont pas été citées. La fixation de la chaîne, les touches de corriger le bug:
Changement:
À:
Variable manquante signe dollar:
var_without_dollar
Une autre raison, vous pouvez voir ce message d'erreur est si vous laissez au large de la
$
à partir d'une variable, ou$this->
d'un membre. Par exemple, de la façon suivante serait de provoquer un message d'erreur similaire:Caractère non valide dans le nom de la variable:
$bad-variable-name
Un semblable, mais plus subtile problème peut se produire si vous essayez d'utiliser refusé de caractère dans un nom de variable - un trait d'union (
-
) au lieu d'un trait de soulignement_
serait un cas commun.Par exemple, c'est OK, depuis des traits de soulignement sont autorisés dans les noms de variable:
Mais ce n'est pas:
Ça va être interprétées de la même chose que ceci:
Se référant à une constante de classe sans en préciser l'étendue de classe
Afin de vous référer à une constante de classe, vous devez spécifier l'étendue de classe avec
::
, si vous manquez cette off PHP pense que vous parlez d'un mondialdefine()
.Par exemple:
À l'aide d'une constante qui n'est pas défini dans cette version de PHP, ou est défini dans une extension qui n'est pas installé
Il y a quelques définis par le système des constantes qui n'existent que dans les versions récentes de PHP, par exemple l'option mode constantes pour
round()
commePHP_ROUND_HALF_DOWN
n'existent que dans PHP 5.3 ou plus tard.Donc, si vous avez essayé d'utiliser cette fonction en PHP 5.2, dire:
Vous obtenez ce message d'erreur:
self::
partie. Il travaille maintenant.vous avez probablement oublié d'utiliser
""
.Par exemple:
changement:
Vous avez manqué de mettre des guillemets simples autour de votre tableau de clés:
devrait être:
La façon correcte d'utiliser des variables post est
Utilisation de guillemets simples(')
Insérer des guillemets simples.
Exemple
Ne suis pas sûr si il y a une différence am à l'aide de code de l'allumeur et j'utilise "" pour les noms et il fonctionne très bien.
ce qui concerne,
Jorge.
Ressemble prédéfinis extraire les constantes de s'en alla avec l'extension MySQL, nous avons donc besoin de les ajouter avant la première fonction...
//predifinis extraire des constantes
J'ai testé et réussi.