Вопрос

Есть ли у кого-нибудь T_PAAMAYIM_NEKUDOTAYIM?

Это было полезно?

Решение

Это оператор двойного двоеточия :: (видеть список токенов парсера).

Другие советы

Гугл творит чудеса.

Его иврит для «двойного двоеточия».

Это имя для :: оператор в 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 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 работает просто отлично.

Это может произойти в foreach при использовании:

foreach( $array as $key = $value )

вместо

foreach( $array as $key => $value )

Как здесь сказано, обычно вам нужна версия 5.3.Однако я сломал все страницы, удалив эту строку из нашего файла .htaccess.

# Use PHP 5.3
AddHandler application/x-httpd-php53 .php

Возможно, это кому-то пригодится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top