Возможный дубликат:
Ссылка. Что означает этот символ в PHP?
Я выполнял условные условия с if / else или через год или около того. Рассматривая какой-то новый код, я вижу условное выражение, которое, как представляется, используется ?
и :
вместо if и else. Я хотел бы узнать больше об этом, но я не уверен, что делать в Google, чтобы найти статьи, объясняющие, как это работает. Как мне это сделать?
Это Тернарный оператор .
Основное использование – это что-то вроде
$foo = (if this expressions returns true) ? (assign this value to $foo) : (otherwise, assign this value to $foo)
Его можно использовать для более чем назначения, но похоже, что другие примеры появляются ниже.
Я думаю, что причина, по которой вы видите это во множестве современных, OO-стиле PHP, заключается в том, что без статической типизации вам нужно быть параноидальным в отношении типов в любой конкретной переменной, а однострочный тернар менее загроможден, чем 7 строк, если / еще условно.
Кроме того, в знак уважения к комментариям и истине в именовании читайте все о тройном операторе в области информатики.
Это был бы условный оператор. Это почти одна строка, если / then / else:
if(someCondition){ $x = doSomething(); } else{ $x = doSomethingElse(); }
становится:
$x = someCondition ? doSomething() : doSomethingElse();
Это:
состояние ? do_if_true: do_if_false
Итак, например, в приведенном ниже примере будет выполняться do-> something ().
$true = 1; $false = 0 $true ? $do->something() : $do->nothing();
Но в приведенном ниже примере do-> nothing () будет запущен.
$false ? $do->something() : $do->nothing();
Это тернарный оператор в PHP. Это сокращение для if / else, формат:
condition ? true expression : false expression;