Хтось має 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, можна посилатися на клас за допомогою змінної. Значення змінної не може бути ключовим словом (наприклад, власна, батьківська та статична).
Паамаїм Некудотайм спочатку здавався б дивним вибором для називання подвійної двокрапки. Однак, під час написання Zend Engine 0.5 (що забезпечує PHP 3), саме так вирішила назвати команда Zend. Це насправді означає подвійну двокрапку - на івриті!
Це також відбувається, коли ви застосовуєте константу в PHP до функції порожній ():
if (!empty(SOME_CONSTANT)) {
}
Це був мій випадок. Я вирішив це за допомогою цього:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
Я знаю іврит досить добре, тому для уточнення для вас назви "Паамейм Некудотайм", перефразоване значення означає "подвійна двокрапка", але перекладається буквально:
::
означає «два рази, дві точки», або більш загальновідомий як Оператор розв'язання сфери застосування .Для мене це сталося в межах функції класу.
У PHP 5.3 і вище $this::$defaults
добре працювали; коли я поміняв код на сервер, який з будь-якої причини мав менший номер версії, він викинув цю помилку.
У моєму випадку рішенням було використовувати ключове слово self
замість $this
:
self::$defaults
працює просто чудово.
$this
, або що з тобою сталося ?