2015-04-05 4 views
4

Этот вопрос немного упреждающий, поскольку php 7 еще не выпущен. Мне любопытно, как оператор космического корабля будет обрабатываться в контексте тройных операторов.Как операторы сравнения (оператор космического корабля) обрабатываются в тройных операторах

так что если у меня есть троичное выражение до космического корабля, таких как:

$foo = 1; 
$bar = 0; 
echo 'foo is ' . (($foo > $bar) ? 'greater than' : (($foo < $bar) ? 'less than' : 'equal to')) . ' bar.'; 

что будет эквивалентно троичный оператором с помощью оператора сравнения? Имеются ли у троянов какие-то средства для обработки этого сценария? Я использую тернарные операторы довольно много, и мне любопытно, есть ли способ упорядочить код в различных случаях, когда оператор сравнения будет иметь значение.

+0

Палки ваших строк в массиве, используйте результат оператор космического корабля (возможно, скорректированный на +1) к индексу, что массив? –

+0

* Этот вопрос немного упреждающий * Я думаю, что это идеальное время, чтобы начать СЕЙЧАС с просьбой и попробовать php 7. Поскольку релиз, вероятно, будет в этом году. Поэтому я предпочитаю начинать с php 7, вместо того, чтобы ждать 5 лет, пока все не используют его. FYI: Вы можете протестировать файл php 7 здесь: http://3v4l.org/ ИЛИ вы даже можете загрузить парсер php и установить его: https://github.com/nikic/PHP-Parser/releases/tag/v1. 2,2 – Rizier123

ответ

3

Оператор космического корабля, как вы можете видеть из документации its RFC, был, однако, в основном для использования при оформлении заказов.

Я не думаю, что это могло бы помочь в сокращении кода, который вы опубликовали, в основном из-за того, что тернарный оператор ожидает логическое значение, а тернарный оператор возвращает «истинное» значение (1 и -1) в обоих случаях когда значения различны. Другими словами, когда вы возвращаете значение возвращаемого значения в логическое значение, оператор космического корабля эквивалентен оператору! =.

Во всяком случае, вы можете экспериментировать с ним на 3v4l.org, как я сделал here