PHP Shorthand trernary operator??: «Ошибка анализа без ошибок»:

Я только что загрузил старые файлы PHP на новый сервер и получаю ошибки синтаксического анализа (Unexpected ':') в сокращенных тройных операциях. например:

$y = $x ?: "Some default"; 

Версия php – 5.2.16. Код усеян этими сокращениями?:, поэтому, прежде чем менять их, я думал, что увижу, знает ли кто-нибудь об этом, поскольку я не использовал PHP некоторое время.

Related of "PHP Shorthand trernary operator??: «Ошибка анализа без ошибок»:"

Это доступно только с PHP 5.3

Выражение (expr1)? (expr2): (expr3) вычисляется как expr2, если expr1 имеет значение TRUE и expr3, если expr1 оценивается как FALSE .

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

См. Этот пример для большего контекста.

или более полезно, но заметьте в комментариях: http://www.php.net/manual/en/control-structures.if.php#102060


1 http://php.net/manual/en/language.operators.comparison.php

Поскольку вы используете php 5.2.16, ваш троянец требует 2 варианта, например

 $y = $x? "???" : "Some default"; 

Переменная = условие? истинное значение: ложное значение;