php Notice Warning use of Undefined Constant - FIX

Giorgio Borelli

Durante l'esecuzione di uno script php potrebbe capitare di riceve in maniera apparentemente immotivata la seguente notifica o warning "Use of undefined constant", che in semplici parole ci vuol dire che l'interprete php ha rilevato all'interno del codice sorgente l'uso di una costante che non è stata definita.

Perché accade se noi abbiamo controllato per bene ogni singola riga, ogni istruzione ed ogni definizione di costante del nostro codice, anche dei file inclusi, beh! mettetevi il cuore in pace, nonostante tutta l'attenzione posta, si tratta sicuramente di una svista, e ve lo dico perché anche io sono incappato in questo warning misterioso, si perché sembra davvero mistorioso, talvolta questa notifica può comparire anche se non si è definita alcuna costante; ma andiamo a vedere come risolvere il warning "Use of undefined constant".

Non mi soffermerò di certo a spiegare cos'è una costante, vado dritto al punto facendo un esempio che simuli il verificarsi di detto warning, supponiamo di dichiarare in php la classica costastante pi greco tramite la direttiva define, in questo modo:

<?php
//crea una constante chiamata PI
define('PI', 3.14);
 
//stampa in output il valore della costante PI
echo PI;

...
?>

 

Fin qui tutto regolare, non compare alcun warning e possiamo procedere regolarmente col nostro script, ci è servito solo per ricordare il modo in cui definiamo una costante in php a mezzo define, ma proviamo ad osservare il pezzettino di codice sottostante dove non definiamo alcuna costante e facciamo volutamente un errore, vediamo cosa succede:

<?php
//Creo una semplice variabile chiamata $name.
$name = "Giorgio";
 
//Stampo in output il valore della variabile
echo name;

...
?>

In questo caso invece riceverò sicuramente il warning da parte dell'interprete php "Notice: Use of undefined constant name", anche se non ho definito alcuna costante, e come direte voi?
Beh! ho semplicemente dimenticato a scrivere il simbolo del dollaro '$' davanti il nome della variabile, quindi php assume che 'name' sia una costante e non la variabile definita precedentemente, e dato che nessuno ha definito tale costante riceviamo la notifica, chiaro no?

Ma questo non è il solo caso in cui possiamo incappare che generi detto warning, vediamo un altro esempio che fa uso dell'array super globale $_POST:

<?php
//Stampa la variabile POST chiamata "email"
echo $_POST[email];
...
?>

Anche in questo caso riceveremo il messaggio da parte di php Notice Warning "Use of undefined constant name – assumed ’email’", e come avrete certamente intuito si verifica poiché abbiamo dimenticato i doppi apici nel nome della variabile post, quindi php cerca una costante chiamata email che non potrà trovare poiché non definita, ovviamente per fixarlo basterà scrivere:

<?php
//Stampa la variabile POST chiamata "email"
echo $_POST["email]";
...
?>

Spero questo possa aiutarvi, ponete attenzione nella scrittura delle variabili (di qualunque natura esse siano) poiché basta un errore di distrazione o di battitura per far intendere all'interprete php che vogliamo riferirci ad una costate e generare così l'inaspettato notifica o warning "Use of undefined constant".

Categorie: fix | PHP

Tags: , , , ,

Aggiungi Commento

biuquote
Loading