Вопрос о синтаксисе PHP: Что означают вопросительный знак и двоеточие? [дубликат]

Я собирался советовать, чтобы извлечь все файлы на том же уровне, затем сделать банку из результата, так как система пакета должна сохранить их аккуратно разделенными. Это было бы ручным путем, я предполагаю, что инструменты, обозначенные Steve, сделают это приятно.

64
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

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

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

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

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

$result = $x ?: 'default';

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

$param = $_GET['param'] ?? 'default';
135
ответ дан 24 November 2019 в 15:45
поделиться

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

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

См. Здесь более подробную информацию о тернарных операциях в PHP: http://www.addedbytes.com/php/ternary-conditionals/

17
ответ дан 24 November 2019 в 15:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: