Почему PHP выдает эту ошибку разбора?

У меня есть маленький вопрос для всех вас. В настоящее время у меня есть мой сайт на 000webhost и следующая строка:

$price  = explode(".",$item->sellingStatus->currentPrice)[0];

вызывает следующую ошибку:

Ошибка разбора: синтаксическая ошибка, неожиданная '[' в /home/a1257018/public_html/scripts/myfile.php в строке 58

Когда это не вызывает это на localhost. Код должен работать... Explode возвращает массив и [0] просто вызывает первый пункт. Почему это выдает ошибку?

3 ответа

Этот синтаксис разрешен только в PHP 5.4+. Вы должны использовать временные переменные в старых версиях:

$tmp = explode('.', $item->sellingStatus->currentPrice);
$price  = $tmp[0];

Был обсужден на SO.

Используйте это как

$array  = explode(".", $item->sellingStatus->currentPrice);
$price = $array[0];

Это потому, что ваш сервер не поддерживает этот синтаксис из-за php < 5.4вот та же ошибка, показывающая в 5.3.19 и работает здесь, используя php-5.4,

$price  = explode(".",$item->sellingStatus->currentPrice);
$currentPrice = $price[0];

Это должно работать.

Другие вопросы по тегам