Qualcuno ha un T_PAAMAYIM_NEKUDOTAYIM
?
u
. Dovrebbe essere T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "due volte", NEKUDOTAYIM
= :
= "נקודותיים")
Qualcuno ha un T_PAAMAYIM_NEKUDOTAYIM
?
u
. Dovrebbe essere T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "due volte", NEKUDOTAYIM
= :
= "נקודותיים")
Risposte:
È l'operatore di due punti ::
(vedere l' elenco dei token di parser ).
var_dump(empty(TRUE))
foreach($cats as cat
dell'unico carattere accettabile dopo che cat
per un'istruzione sintatticamente valida è un ::
, in quanto consentirebbe di specificare una proprietà statica di una classe chiamata cat
. Ad esempio, se la cat
classe ha un membro statico pubblico chiamato $mouse
, allora foreach($cats as cat::$mouse)
è perfettamente valido php
, ma un'istruzione con qualcosa di diverso da ::
dopo cat
sarebbe un errore di sintassi. Se $mouse
non fossi una proprietà dichiarata di cat
te otterresti un errore fatale, ma non un errore di sintassi.
Google fa miracoli.
È l' ebraico per "doppio colon".
È un nome per l' ::
operatore in PHP. Significa letteralmente "doppio colon". Per qualche ragione l'hanno chiamato in ebraico. Controlla la sintassi del codice e inserisci un ::
punto appropriato :-)
Da Wikipedia :
In PHP, l'operatore di risoluzione dell'ambito è anche chiamato Paamayim Nekudotayim (ebraico: פעמיים נקודתיים), che significa "doppio colon" in ebraico.
Il nome "Paamayim Nekudotayim" è stato introdotto nello Zend Engine 0.5 sviluppato in Israele, utilizzato in PHP 3. Sebbene sia stato fonte di confusione per molti sviluppatori che non parlano l'ebraico, è ancora utilizzato in PHP 5, come in questo messaggio di errore di esempio :
$ php -r :: Errore di analisi: errore di sintassi, T_PAAMAYIM_NEKUDOTAYIM imprevisto
A partire da PHP 5.4, i messaggi di errore relativi all'operatore di risoluzione dell'ambito includono ancora questo nome, ma ne hanno chiarito in qualche modo il significato:
$ php -r :: Errore di analisi: errore di sintassi, imprevisto '::' (T_PAAMAYIM_NEKUDOTAYIM)
Dalla documentazione ufficiale di PHP :
Scope Resolution Operator (chiamato anche Paamayim Nekudotayim) o, in termini più semplici, i due punti, è un token che consente l'accesso a proprietà o metodi statici, costanti e sovrascritti di una classe.
Quando si fa riferimento a questi elementi al di fuori della definizione della classe, utilizzare il nome della classe.
A partire da PHP 5.3.0, è possibile fare riferimento alla classe usando una variabile. Il valore della variabile non può essere una parola chiave (ad es. Self, parent e static).
All'inizio Paamayim Nekudotayim sembrerebbe una strana scelta per nominare un doppio colon. Tuttavia, durante la scrittura di Zend Engine 0.5 (che alimenta PHP 3), è così che il team di Zend ha deciso di chiamarlo. In realtà significa doppio colon - in ebraico!
Questo accade anche quando applichi una costante in PHP alla funzione empty ():
if (!empty(SOME_CONSTANT)) {
}
Quello era il mio caso. L'ho risolto usando questo:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
Conosco abbastanza bene l'ebraico, quindi per chiarire il nome "Paamayim Nekudotayim" per te, il significato parafrasato è "doppio colon", ma tradotto letteralmente:
::
indica "due volte, due punti" o più comunemente noto come Scope Resolution Operator .Per me questo è successo all'interno di una funzione di classe.
In PHP 5.3 e versioni successive $this::$defaults
funzionava bene; quando ho scambiato il codice in un server che per qualsiasi motivo aveva un numero di versione inferiore ha generato questo errore.
La soluzione, nel mio caso, era usare la parola chiave self
invece di $this
:
self::$defaults
funziona benissimo.
$this
, o quello che è successo a te ?