Вопрос синтаксиса PHP: что означает знак вопроса и двоеточие?

Возможный дубликат:
быстрый синтаксический запрос php

return $add_review ? FALSE : $arg; 

Что означают знак вопроса и двоеточие?

благодаря

    Это тернарный оператор PHP (также известный как условный оператор) – если первый операнд оценивает true, оценивает его как второй операнд, а другой оценивает как третий операнд.

    Подумайте об этом как о выражении «if», которое вы можете использовать в выражениях. Может быть очень полезно при выполнении кратких заданий, которые зависят от некоторого состояния, например

     $param = isset($_GET['param']) ? $_GET['param'] : 'default'; 

    Также есть сокращенная версия этого (в PHP 5.3 и далее). Вы можете оставить средний операнд. Оператор будет оценивать как первый операнд, если он истинный, и третий операнд в противном случае. Например:

     $result = $x ?: 'default'; 

    Стоит отметить, что приведенный выше код при использовании переменной $ _GET или $ _POST вызывает неопределенное уведомление об индексе и предотвращает необходимость использования более длинной версии с isset или нулевым коалесцирующим оператором, который вводится в PHP7:

     $param = $_GET['param'] ?? 'default'; 

    Это тройная форма оператора if-else. Вышеприведенное утверждение в основном гласит:

     if ($add_review) then { return FALSE; //$add_review evaluated as True } else { return $arg //$add_review evaluated as False } 

    См. Здесь для более подробной информации о trernary op в PHP: http://www.addedbytes.com/php/ternary-conditionals/