Ошибка в тернарном операторе

Рейтинг: 0Ответов: 2Опубликовано: 16.04.2015

Столкнулся с такой проблемой. На моем хостинге вот такая запись успешно работает:

$height = $height ?: $width;

Однако на другом хостинге он выбрасывает:

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

Почему так? Настройка php.ini или версия самого PHP?

Ответы

▲ 4Принят

Начиная с версии PHP 5.3 также стало возможным не писать среднюю часть тернарного оператора. Выражение expr1 ?: expr3 возвращает expr1 если expr1 имеет значение TRUE, и expr3 в другом случае.

http://php.net/manual/ru/language.operators.comparison.php

▲ 1

Эта фича, сокращённый тернарный оператор, появилась начиная с PHP 5.3. Так что на другом хостинге у вас просто более старый PHP.

Since PHP 5.3, it is possible to leave out the middle part of the conditional operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

Подробнее: