#php #ternary
#php #тернарный
Вопрос:
Как я могу создать тернарное выражение php, содержащее только оператор if без части else? Это то, что я пробовал :
$vn = condition ? expression1 ;
И это то, чего я пытаюсь достичь
if(condition) {
$vn = expression1;
}
Для
$vn = condition ? expression1 ;
Ответ №1:
Вы могли бы использовать ту же переменную в else
части:
$vn = condition ? expression1 : $vn ;
Обратите внимание, что это создает уведомление, если $vn
оно не использовалось ранее.
Комментарии:
1. Вы могли бы использовать
@$vn
вelse
части, чтобы предотвратить уведомление.2. @Barmar да. Но на самом деле вы должны
$vn
сначала инициализировать. Подавление уведомлений, предупреждений и ошибок никогда не является хорошей идеей.
Ответ №2:
Если вы используете PHP 7, вы можете рассмотреть Null Coalescing Operator
.
В некоторых случаях синтаксис аналогичен тому, что вы, похоже, ищете:
$email = $_POST['email'] ?? 'none';
// is the same as:
$email = isset($_POST['email']) ? $_POST['email'] : 'none';
Ответ №3:
(condition) AND ($vn = expression1);
тоже работает.
И только как информация:
$v = condition?:expression1
также возможно, здесь condition
(в случае) анализируется на $v