Это PHP тернарный оператор (также известный как условный оператор) - если первый операнд оценивает true, оценивает его как второй операнд, как третий операнд.
Подумайте об этом как о выражении "if", которое вы можете использовать в выражениях. Может быть очень полезно при создании кратких заданий, которые зависят от некоторого условия, например.
Там также сокращенная версия этого (в PHP 5.3 и далее). Вы можете оставить средний операнд. Оператор будет оценивать как первый операнд, если он истинный, и третий операнд в противном случае. Например:
$result = $x ?: 'default';
Стоит отметить, что приведенный выше код при использовании переменной $_GET или $_POST будет вызывать уведомление об индексе undefined и предотвращать необходимость использования более длинной версии с isset или оператор нулевой коалесценции, который вводится в PHP7:
$param = $_GET['param'] ?? 'default';
Ответ 2
Это тройная форма оператора if-else. Вышеприведенное утверждение в основном читается следующим образом:
if ($add_review) then {
return FALSE; //$add_review evaluated as True
} else {
return $arg //$add_review evaluated as False
}