Domanda

Qualcuno ha un T_PAAMAYIM_NEKUDOTAYIM?

È stato utile?

Soluzione

E 'l'operatore doppio colon :: (vedi elenco di token parser ).

Altri suggerimenti

Google fa miracoli.

E ' ebraico per "doppio due punti".

E 'un nome per l'operatore :: in PHP. Letteralmente significa "doppio due punti". Per qualche motivo hanno chiamato in ebraico. Controllare la sintassi del codice, e mettere un :: se del caso: -)

Wikipedia :

  

In PHP, l'operatore di risoluzione dell'ambito è anche chiamato Paamayim   Nekudotayim (in ebraico: פעמיים נקודתיים), che significa “doppio due punti” in   Ebraico.

     

Il nome "Paamayim Nekudotayim" è stato introdotto nel   Israelo-sviluppato Zend Engine 0.5 utilizzato in PHP 3. Anche se è stato   fonte di confusione per molti sviluppatori che non parlano l'ebraico, è ancora   essere utilizzato in PHP 5, come in questo messaggio di errore di esempio:

     

$ php -r :: errore di analisi: errore di sintassi, inaspettata   T_PAAMAYIM_NEKUDOTAYIM

     

A partire da PHP 5.4, i messaggi di errore relativo alla operatore di risoluzione dell'ambito   ancora includono questo nome, ma hanno chiarito il suo significato in qualche modo:

     

$ php -r :: errore di analisi: errore di sintassi, inaspettata '::'   (T_PAAMAYIM_NEKUDOTAYIM)

la documentazione di PHP ufficiale :

  

L'Operatore Scope Resolution (chiamato anche Paamayim Nekudotayim) o in   termini più semplici, il doppio del colon, è un token che consente l'accesso a   proprietà statiche, costanti, e sostituito o metodi di una classe.

     

Quando si fa riferimento questi elementi al di fuori della definizione della classe, l'uso   il nome della classe.

     

A partire da PHP 5.3.0, è possibile fare riferimento alla classe utilizzando un   variabile. Il valore della variabile non può essere una parola chiave (ad esempio auto, genitore   e statico).

     

Paamayim Nekudotayim avrebbe, in un primo momento, sembrare una strana scelta per   nominare un doppio due punti. Tuttavia, durante la scrittura del Zend Engine 0.5   (Che PHP 3 potenze), questo è ciò che il team di Zend ha deciso di chiamarlo. esso   in realtà significa doppio colon - in ebraico

Questa è anche venuta quando si applica una costante in PHP alla funzione empty ():

if (!empty(SOME_CONSTANT)) {

}

Questo è stato il mio caso. Ho risolto utilizzando questo:

$string = SOME_CONSTANT;
if (!empty($string)) {

}

Per me questo è accaduto all'interno di una funzione di classe.

In PHP 5.3 e sopra $this::$defaults ha funzionato bene; quando ho scambiato il codice in un server che per qualsiasi motivo ha avuto un numero di versione inferiore ha gettato questo errore.

La soluzione, nel mio caso, è stato quello di utilizzare la parola chiave self invece di $this:

self::$defaults funziona bene.

Questo può accadere in foreachs quando si utilizza:

foreach( $array as $key = $value )

anziché

foreach( $array as $key => $value )

Come detto qui, è generalmente necessario 5.3. Tuttavia, il modo in cui ho rotto tutte le pagine è stato di rimozione di questa linea dal nostro file .htaccess.

# Use PHP 5.3
AddHandler application/x-httpd-php53 .php

Forse questo è utile in qualche modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top