Итак, Джейкоб Релкин абсолютно прав в том, что упомянутая вами «стенография» действительно называется «троичным» оператором, и, как добавляет Сэм Дюфель, она очень распространена в других языках.В зависимости от того, как язык его реализует, сервер может даже быстрее интерпретировать логику, а также быстрее читать ее.
Так что иногда помогает, когда вы изучаете новый фрагментлогика или новые операторы, такие как этот, должны думать об английском (или о том, какой у вас родной язык), чтобы соответствовать ему.Опишите это в предложении.Давайте поговорим о вашем примере:
($var) ? true : false;
Что это должно читаться следующим образом:
Является ли $ var true? Если $ var равно, вернутьзначение true .Если $ var равно false, возвращает значение false .
Знак вопроса помогает напомнить, что вы задаете вопрос, определяющий вывод.
Более распространенныйВариант использования для троичного оператора - это когда вы проверяете что-то, что не обязательно является логическим, но вы можете использовать логическую логику для его описания.Возьмем, к примеру, объект Car
, который имеет свойство color
, которое является строковой переменной (в PHP).Вы не можете спрашивать, является ли строка истинной или ложной, потому что это не имеет смысла, но вы можете задавать разные вопросы об этом:
$output = $car->color == "blue" ? "Wheee this car is blue!" : "This car isn't blue at all.";
echo $output;
Таким образом, эта строка выглядит следующим образом:
Является ли цвет автомобиля таким же, как и строка "синий"?
Если это так, возвращает строку "Где этот автомобиль синий!" , в противном случае возвращаетstring «Этот автомобиль вовсе не синий».
Все, что возвращает троичный оператор, используется в правой части оператора присваивания с $ output, и эта строка затем печатается.