Vediamo cos’è e come risolvere l’errore PAAMAYIM_NEKUDOTAYIM di PHP. Vi è mai capitato di visualizzare un errore del genere durante l’esecuzione di un’applicazione scritta in PHP?
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
oppure
Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
Vediamo innanzitutto di cosa si tratta: questo notifica di errore viene inviata da PHP nel caso in cui venga effettuato un utilizzo scorretto dell’operatore :: ("Paamayim Nekudotayim" cioè "double colon" in ebraico).
Un esempio di utilizzo sbagliato potrebbe essere quello del suo impiego a carico di un metodo non statico o il caso di uno scope errato per un oggetto.
Come gestire questo tipo di errore? Poniamo per esempio di aver definito una classe come la seguente:
class MiaClasse
{
public static function MetodoStatico()
{
return null;
}
public function MetodoNonstatico()
{
return null;
}
}
Una chiamata del genere:
<?php $MiaClasse::MetodoNonstatico(); ?>
Porterà alla notifica di un errore, perché l’operatore è stato utilizzato su un metodo non statico, non avremo invece alcune errore nel caso di una chiamata come la seguente:
<?php $MiaClasse::MetodoStatico(); ?>
Questo perché l’operatore viene utilizzato, correttamente, su un metodo statico.