Тернарные операторы
?: Условный тернарный оператор
?: Условный тернарный операторВыражение (expr1) ? (expr2) : (expr3) интерпретируется как expr2, если expr1 имеет значение true, или как expr3, если expr1 имеет значение false.
$result = (2 > 1) ? 'если true' : 'если false';
//аналогично этому
if(2 > 1) {
$result = 'если true';
}else{
$result = 'если false';
}Кророткий тернарный оператор (expr1) ?: (expr2)
$result = $var ?: '';
//аналогично этому
if($var) {
$result = $var;
}else{
$result = '';
}Цепочка коротких тернарных операторов (?:) вернёт первый аргумент, который оценивается как не ложное значение.
?? Оператор объединения с null
?? Оператор объединения с nullВыражение (expr1) ?? (expr2) вычисляется так: expr2, если expr1 равен null и expr1 в противном случае.
То же самое что и ?: но возвращает первый результат который не null. То есть вернёт даже false, главное что бы не null.
Удобно использовать для определения дефолтного значения, если первый операнд равен null.
Так же ?? можно использовать для проверки существования ключей массива, если таких ключей нету, то он присвоит следующуе значение и не вызовет ошибку.
Last updated