Czy ktoś ma T_PAAMAYIM_NEKUDOTAYIM
?
u
. Powinno być T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "dwa razy", NEKUDOTAYIM
= :
= "נקודותיים")
Czy ktoś ma T_PAAMAYIM_NEKUDOTAYIM
?
u
. Powinno być T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "dwa razy", NEKUDOTAYIM
= :
= "נקודותיים")
Odpowiedzi:
Jest to operator podwójnego dwukropka ::
(patrz lista tokenów analizatora składni ).
var_dump(empty(TRUE))
foreach($cats as cat
jedyną akceptowalną postać po cat
for dla poprawnej składniowo instrukcji jest ::
, ponieważ pozwoliłoby to na określenie właściwości statycznej jakiejś klasy o nazwie cat
. Na przykład, jeśli cat
klasa ma publiczny element statyczny o nazwie $mouse
, to foreach($cats as cat::$mouse)
jest całkowicie poprawna php
, ale instrukcja z czymkolwiek innym niż ::
po cat
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”.
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 :-)
Z Wikipedii :
W PHP operator rozdzielczości zakresu nazywa się również Paamayim Nekudotayim (hebr. פעמיים נקודתיים), co w języku hebrajskim oznacza „podwójny dwukropek”.
Nazwa „Paamayim Nekudotayim” została wprowadzona w opracowanym w Izraelu Zend Engine 0.5 używanym w PHP 3. Chociaż jest myląca dla wielu programistów, którzy nie mówią po hebrajsku, nadal jest używana w PHP 5, jak w tym przykładowym komunikacie o błędzie :
$ php -r :: Błąd analizy: błąd składni, nieoczekiwany T_PAAMAYIM_NEKUDOTAYIM
Począwszy od PHP 5.4, komunikaty o błędach dotyczące operatora rozdzielczości zakresu nadal zawierają tę nazwę, ale nieco wyjaśniono jej znaczenie:
$ php -r :: Błąd analizy: błąd składni, nieoczekiwany „::” (T_PAAMAYIM_NEKUDOTAYIM)
Z oficjalnej dokumentacji PHP :
Operator rozdzielczości zakresu (zwany również Paamayim Nekudotayim) lub, mówiąc prościej, podwójny dwukropek, jest tokenem, który umożliwia dostęp do statycznych, stałych i przesłoniętych właściwości lub metod klasy.
Odwołując się do tych elementów spoza definicji klasy, użyj nazwy klasy.
Począwszy od PHP 5.3.0, możliwe jest odwołanie do klasy za pomocą zmiennej. Wartość zmiennej nie może być słowem kluczowym (np. Self, parent i static).
Paamayim Nekudotayim z początku wydawałby się dziwnym wyborem dla nazwania podwójnego dwukropka. Jednak pisząc Zend Engine 0.5 (który obsługuje PHP 3), zespół Zend postanowił to nazwać. W rzeczywistości oznacza to dwukropek - po hebrajsku!
Dzieje się tak również wtedy, gdy zastosujesz stałą w PHP do funkcji empty ():
if (!empty(SOME_CONSTANT)) {
}
To była moja sprawa. Rozwiązałem to za pomocą tego:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
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 .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.
$this
, co się z tobą stało ?