Czy ktoś ma T_PAAMAYIM_NEKUDOTAYIM
?
php
syntax-error
runtime-error
Peter Turner
źródło
źródło
u
. Powinno byćT_PAAMAYIM_NEKUDOTAYIM
. (PAAMAYIM
= "dwa razy",NEKUDOTAYIM
=:
= "נקודותיים")Odpowiedzi:
Jest to operator podwójnego dwukropka
::
(patrz lista tokenów analizatora składni ).źródło
var_dump(empty(TRUE))
foreach($cats as cat
jedyną akceptowalną postać pocat
for dla poprawnej składniowo instrukcji jest::
, ponieważ pozwoliłoby to na określenie właściwości statycznej jakiejś klasy o nazwiecat
. Na przykład, jeślicat
klasa ma publiczny element statyczny o nazwie$mouse
, toforeach($cats as cat::$mouse)
jest całkowicie poprawnaphp
, ale instrukcja z czymkolwiek innym niż::
pocat
byłaby błędem składni. Gdyby$mouse
nie były zadeklarowaną własnościącat
, otrzymalibyśmy błąd krytyczny, ale nadal nie byłby to błąd składniowy.Google działa cuda.
Jest hebrajski dla „podwójnego dwukropka”.
źródło
To nazwa
::
operatora w PHP. To dosłownie oznacza „podwójny dwukropek”. Z jakiegoś powodu nazwali go po hebrajsku. Sprawdź składnię kodu i wpisz::
odpowiednie :-)źródło
Z Wikipedii :
Z oficjalnej dokumentacji PHP :
źródło
Dzieje się tak również wtedy, gdy zastosujesz stałą w PHP do funkcji empty ():
To była moja sprawa. Rozwiązałem to za pomocą tego:
źródło
Znam hebrajski całkiem dobrze, więc aby wyjaśnić wam nazwę „Paamayim Nekudotayim”, parafrazowane znaczenie to „podwójny dwukropek”, ale dosłownie przetłumaczone:
::
oznacza „dwa razy, dwie kropki” lub więcej powszechnie znany jako operator rozdzielczości zakresu .źródło
Może się to zdarzyć na Foreachach przy użyciu:
zamiast
źródło
Dla mnie stało się to w ramach funkcji klasy.
W PHP 5.3 i nowszych
$this::$defaults
działało dobrze; kiedy zamieniłem kod na serwer, który z jakiegokolwiek powodu miał niższy numer wersji, zgłosił ten błąd.W moim przypadku rozwiązaniem było użycie słowa kluczowego
self
zamiast$this
:self::$defaults
działa dobrze.źródło
$this
, co się z tobą stało ?