Где я могу прочитать об условных обозначениях, выполненных с помощью "?" и ":" (двоеточие)?

Возможный дубликат:
Справка - Что означает этот символ в 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;
Другие вопросы по тегам