Gestire l'errore T_PAAMAYIM_NEKUDOTAYIM in PHP

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).

Continua dopo la pubblicità...

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.

I commenti degli utenti

I commenti sono sottoposti alle linee guida di moderazione e prima di essere visibili devono essere approvati da un moderatore.