Где я могу прочитать об условных обозначениях, выполненных с помощью "?" и ":" (двоеточие)?
Возможный дубликат:
Справка - Что означает этот символ в PHP?
Я делал условия с if/else или год или около того сейчас. Глядя на какой-то новый код, я вижу условие, которое, кажется, использует ?
а также :
а не если и еще. Я хотел бы узнать больше об этом, но я не уверен, что Google, чтобы найти статьи, объясняющие, как это работает. Как мне это сделать?
4 ответа
Это троичный оператор.
Основное использование это что-то вроде
$foo = (if this expressions returns true) ? (assign this value to $foo) : (otherwise, assign this value to $foo)
Однако его можно использовать не только для присваивания, но и для других примеров.
Я думаю, что причина, по которой вы видите это во многих современных PHP-стилях OO, заключается в том, что без статической типизации вам в конечном итоге нужно быть параноиком по отношению к типам в любой конкретной переменной, а однострочный троичный символ менее загроможден, чем 7-строчный, если / остальное условно.
Кроме того, из уважения к комментариям и правде в именах, прочитайте все о троичных операторах в информатике.
Это был бы условный оператор. Это почти одна строка оператора if/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;