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