Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Прикол разработчиков T_PAAMAYIM_NEKUDOTAYIM


Автор: Muerto 4.9.2010, 15:11
Поскольку разработчики php с Израиля, то я не удивился получить эту ошибку  smile 
Код

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/tim/www/linux.rf/index.php on line 20


Она выдается когда пытаемся сделать нечто:

Код

$classname::genInstance();

Автор: gta4kv 4.9.2010, 16:58
что смешного то?

Автор: bars80080 4.9.2010, 18:22
ты не можешь исправить эту ошибку?

Автор: Muerto 4.9.2010, 18:23
gta4kv, то что  ошибку выдает на ИВРИТЕ
Или вы считайте PAAMAYIM_NEKUDOTAYIM английским ?
Исправить ошибку можно путем call_user_func

Автор: gta4kv 4.9.2010, 19:14
Код

Исправить ошибку можно путем get_user_func

Решения просто поражают.

Автор: bars80080 4.9.2010, 20:07
интересно, а разве существуют такие синтаксические ошибки, которые можно исправить введением какого-то дополнительного кода?
ну, за исключением тоже ошибочного, но в другую сторону

Автор: Muerto 4.9.2010, 21:31
gta4kv, Вы серьёзно?
bars80080, Да существуют!

Допустим если у меня есть класс velosiped и у него есть статический метод info который
Код

echo ' hello world';


То если я попытаюсь сделать

Код

$classname='velosiped';
$classname::info();



Выдаст
Код

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM


Если бы я то же самое делал через call_user_func то все было бы иначе

Автор: bars80080 5.9.2010, 00:35
Цитата(Muerto @  4.9.2010,  21:31 Найти цитируемый пост)
Допустим если у меня есть класс velosiped и у него есть статический метод info который
echo ' hello world';
То если я попытаюсь сделать
$classname='velosiped';
$classname::info();
Выдаст
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

ваш код тоже по-еврейски ругается?
а своим личным кодом вы можете добиться синтаксической ошибки, которая устраняется изменением функционала?

Автор: Muerto 5.9.2010, 01:16
bars80080, у всех он по еврейски ругается =-) в гугле поищите unexpected T_PAAMAYIM_NEKUDOTAYIM ясно все станет
Это типа разработчики прикол такой оставили , может специально из гордости , а может просто забыли заменить...


а своим личным кодом вы можете добиться синтаксической ошибки, которая устраняется изменением функционала? 


Именно это я и объяснил выше...
За место 
Код

$classname='MY_CUSTOM_CACHE';
$classname::help();

если использовать call_user_func ошибка выше не выскакиваем...
но ИЗМЕНЕНИЯ ФУНКЦИОНАЛА ЗДЕСЬ НЕТУ, а просто ОДНО И ТО ЖЕ в другой форме!

Автор: skyboy 7.9.2010, 11:16
ну, пожалуй, прикольно, когда видишь впервые.
но обычно "впервые", это наступает ещё  на этапе чтения документации, потому как разработчики сей нюанс http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php. и достаточно почитать раздел "ООП в РНР5", чтоб наткнуться на специфическое название для "scope resolution operator".
статьи манов полезны не только тем, что на них удобно посылать. в них ещё содержится информация, полезная для организма. В частности, третий абзац по приведенной ссылке гласит, что:
Цитата(php.net)

As of PHP 5.3.0, it's possible to reference the class using a variable. The variable's value can not be a keyword (e.g. self, parent and static). 

Т.е. то, что у тебя вызывает ошибку, должно исправно работать, начиная с 5.3.0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)