У кого-нибудь есть T_PAAMAYIM_NEKUDOTAYIM
?
u
. Так и должно быть T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "дважды", NEKUDOTAYIM
= :
= "נקודותיים")
У кого-нибудь есть T_PAAMAYIM_NEKUDOTAYIM
?
u
. Так и должно быть T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "дважды", NEKUDOTAYIM
= :
= "נקודותיים")
Ответы:
Это оператор двойного двоеточия ::
(см. Список токенов парсера ).
var_dump(empty(TRUE))
foreach($cats as cat
единственный приемлемый символ после cat
синтаксически допустимого оператора - a ::
, так как это позволит вам указать статическое свойство некоторого вызываемого класса cat
. Например, если у cat
класса есть открытый статический член с именем $mouse
, тогда foreach($cats as cat::$mouse)
он совершенно допустим php
, но оператор с чем-либо, кроме ::
после, cat
будет синтаксической ошибкой. Если бы вы $mouse
не были объявлены как свойство, cat
вы получили бы фатальную ошибку, но все же не синтаксическую ошибку.
Google творит чудеса.
Это иврит для "двойного двоеточия".
Это имя для ::
оператора в PHP. Это буквально означает «двойное двоеточие». Почему-то они назвали это на иврите. Проверьте синтаксис вашего кода и вставьте, ::
где это уместно :-)
Из Википедии :
В PHP оператор разрешения контекста также называется Paamayim Nekudotayim (иврит: פעמיים נקודתיים), что означает «двойное двоеточие» на иврите.
Название «Paamayim Nekudotayim» было введено в разработанном Израилем Zend Engine 0.5, используемом в PHP 3. Хотя это сбивает с толку многих разработчиков, которые не говорят на иврите, оно все еще используется в PHP 5, как в этом примере сообщения об ошибке. :
$ php -r :: Ошибка разбора: синтаксическая ошибка, неожиданный T_PAAMAYIM_NEKUDOTAYIM
Начиная с PHP 5.4, сообщения об ошибках, касающиеся оператора разрешения области действия, все еще включают это имя, но несколько разъяснили его значение:
$ php -r :: Ошибка разбора: синтаксическая ошибка, неожиданное '::' (T_PAAMAYIM_NEKUDOTAYIM)
Из официальной документации PHP :
Оператор разрешения области (также называемый Paamayim Nekudotayim) или, проще говоря, двойное двоеточие, является токеном, который обеспечивает доступ к статическим, постоянным и переопределенным свойствам или методам класса.
При ссылках на эти элементы вне определения класса используйте имя класса.
Начиная с PHP 5.3.0, можно ссылаться на класс с помощью переменной. Значение переменной не может быть ключевым словом (например, self, parent и static).
На первый взгляд Paamayim Nekudotayim может показаться странным выбором для обозначения двойной двоеточия. Тем не менее, во время написания Zend Engine 0.5 (который поддерживает PHP 3), именно так Zend и решили назвать его. Это на самом деле означает двойное двоеточие - на иврите!
Это также происходит, когда вы применяете константу в PHP к функции empty ():
if (!empty(SOME_CONSTANT)) {
}
Это был мой случай. Я решил это с помощью этого:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
Я очень хорошо знаю иврит, поэтому, чтобы уточнить для вас имя «Paamayim Nekudotayim», перефразированное значение «двойной двоеточие», но переводится буквально:
::
означает «два раза, две точки» или более широко известный как оператор разрешения области .Для меня это произошло внутри функции класса.
В PHP 5.3 и выше $this::$defaults
работал нормально; когда я поменял код на сервер, который по какой-либо причине имел меньший номер версии, он выдал эту ошибку.
Решение, в моем случае, заключалось в использовании ключевого слова self
вместо $this
:
self::$defaults
работает просто отлично.
$this
, или что случилось с вами ?