Существует ли PHP как короткая версия троичного оператора в Java?

В PHP тернарный оператор имеет короткую версию.

expr1 ? expr2 : expr3; 

меняется на

 expr1 ? : expr3; 

Краткая версия возвращает результат expr1 в true и expr3 на false. Это позволяет использовать классный код, который может заполнять переменные в зависимости от их текущего состояния. Например:

 $employee = $employee ? : new Employee(); 

Если $employee == null или имеет значение false для любой другой причины, приведенный выше код создаст new Employee(); В противном случае значение в $employee будет переназначено самому себе.

Я искал что-то подобное на Java, но я не мог найти подобный вариант использования тернарного оператора. Поэтому я спрашиваю, существует ли такая функциональность или что-то подобное, что позволяет избежать одного из выражений тернарного оператора, чтобы уменьшить дублирование.

Related of "Существует ли PHP как короткая версия троичного оператора в Java?"

Нет, нет. (Тройная операция требует, по определению , трех операндов)

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

Источник: Руководство PHP

Как и в Java, но в Java вам нужно указать оба результата:

Тройной оператор if-else работает с тремя операндами, производящими значение, зависящее от правды или ложности булевого утверждения. Это форма:

 boolean-exp ? value1 : value2 

Источники:

Спецификации Java для тернарного условного оператора

Официальная документация по Java

Блоги Java.net

Также имейте в виду, что, в отличие от Java и любого другого популярного языка с аналогичным оператором, ?: Остается ассоциативным в PHP. Итак, это:

 <?php $arg = "T"; $vehicle = ( ( $arg == 'B' ) ? 'bus' : ( $arg == 'A' ) ? 'airplane' : ( $arg == 'T' ) ? 'train' : ( $arg == 'C' ) ? 'car' : ( $arg == 'H' ) ? 'horse' : 'feet' ); echo $vehicle; 

печатает horse вместо train (что и следовало ожидать в Java)

Источники:

http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/#operators