Иногда при установке новых расширений на Joomla либо разработке собственного кода, можно встретить вот такую ошибку интерпретатора PHP:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in ...

Честно говоря, отсутствие внятного перевода ошибки может привести в ступор, ведь очевидно, что T_PAAMAYIM_NEKUDOTAYIM должно означать что-то важное.

А в голову приходит.... "параметр (впендюрен) не кудатотам"! :-))) Вот такой вот бред и ничего осмысленного.

Оказывается, дословно эта ошибка переводится как "двойное двоеточие".

Если Вы взглянете на код, то, возможно увидите там кусок, аналогичный вот этому:
 

$class::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_rsfirewall/models');


где $class - это объект класса, переменная, а addIncludePath() - некоторый метод, и для вызова его нужно было бы писать:
 

$class->addIncludePath(JPATH_ADMINISTRATOR.'/components/com_rsfirewall/models');


а двойное двоеточие, как известно, используется для вызова метода класса, а не объекта! Т.е.:
 

MainClass::addIncludePath;


где MainClass - название класса (так как это назваие класса, а не переменная, то знак доллара не нужен).

----

Всё верно?

Так вот, данный порядок был установлен в php 5.2.x и ниже... В версии php 5.3.x такие вольности допускаются!

Так что другим решением в данном случае будет обновление версии PHP!

Успехов!

Add comment


Security code
Refresh