2013-05-03 3 views
19

Мой скрипт работает очень хорошо на моем xampp. Теперь я попытался загрузить его на сервер, но он просто выложилОшибка анализа: синтаксическая ошибка, неожиданная '[' с php 5.3

Parse error: syntax error, unexpected '['

на моем лице. :(

Линия, его насмешливый об это одна:

$item = $xml->xpath($path)[0]; 

И я понятия не имею, что это неправильно, я не пытался смотреть на PHP 5.3 журнала изменений, но не нашел ничего об этом (.. Потому что у меня 5.3 на сервере, так и на XAMPP сво olderversion)

весь блок кода выглядит следующим образом:

$path = '//item[@id="'.$id.'"]'; 
if ($xml->xpath($path)) { 
    $item = $xml->xpath($path)[0]; 
} else { 
    die('<p class="error">Script Error: Code 101 - Please contact administrator</p>'); 
} 

Я благодарен за любую помощь, я не могу Seach [с Google и понятия не имею, где она могла бы исходить от, так как на XAMPP его работы тонкой

+9

вам нужно 5.4, чтобы использовать его как это. в вашем случае '$ item = $ xml-> xpath ($ path); $ item [0]; ' – Kin

+3

*" Начиная с PHP 5.4 можно массировать разыменовывание результата функции или вызова метода непосредственно. До этого было возможно только с использованием временной переменной. "* http://php.net/ manual/en/language.types.array.php –

+0

$ item = $ xml-> xpath ($ path0); я не знаю, но это работает? –

ответ

37

Попробуйте $item = $xml->xpath($path);
$item = $item[0];

+4

Или вы могли бы мигрировать в> = PHP 5.4.x –

+0

Вниз для продвижения copypasta. –