2013-11-07 1 views
3

Я использую класс SimpleImage для обработки изображений, но он не работает на одном конкретном сайте, версия PHP на сервере равна 5.1.6 - так шесть лет ошибка?: В старой версии PHP, вызывающей ошибку синтаксического анализа

Анализировать: ошибка синтаксиса, неожиданный «:» в ...

линии в вопросе, которые вызывают ошибку будучи

$height = $height ?: $width; 
$quality = $quality ?: $this->quality; 
$filename = $filename ?: $this->filename; 

есть обходной путь для этого?

+0

$ выс = $ высоты? $ width: $ width; – user4035

+0

'$ height = $ height? $ height: $ width; ' –

ответ

3

Потому что вы пропустили аргумент в вашем тройном оператора, он должен быть такой синтаксис:

$height = $height ? $height : $width; 
$quality = $quality ? $quality : $this->quality; 
$filename = $filename ? $filename : $this->filename; 

Там должно быть 2 переменные, следующие за? символ, разделенный символом:. Первой переменной является то, что установлено, если условие (до?) Истинно. Вторая переменная - это то, что установлено, если условие ложно.

EDIT:

Синтаксис ?: доступен только с PHP версии 5.3, убедитесь, что вы используете PHP 5.3 или выше.

+0

@ user2864740 Это тернарный оператор, просто сокращенный для его общего использования. – Izkata

+0

Не понимал, что до сих пор была сокращенная версия! Я по-прежнему предпочитаю более длительный синтаксис для удобочитаемости. –

+0

Большое спасибо, был уверен, что это была какая-то стенографическая проблема, о которой я не знал, но поиск «?:» Не приводил к употреблению каких-либо страниц. – Tomate

Смежные вопросы