Можно ли использовать сокращенную троицу, чтобы проверить, установлена ли переменная или нет, вместо того, оценивается ли она как ноль или не ноль?
Например, я пробовал:
$var = 0;
echo (string) $var ?: (string) false ?: 2;
Но поскольку оба первых двух выражения оцениваются как 0 или false, отображается 2.
Я думал, что, возможно, приведение их к строке даст другие результаты, но это не так. Ноль есть ноль, я полагаю.
Я хочу использовать этот стиль при назначении переменных, таких как
$get->var = $get->var ?: $setindb ?: $default;
Я хочу присвоить $get-›var переменной $get-›var, если она установлена, в противном случае проверьте, имеет ли база данных значение, в противном случае используйте значение по умолчанию.
Редактировать
Я думал, что упомяну, что знаю, что могу сделать что-то вроде
$get->var = (!empty($get->var)) ? $get->var : ( (!empty($setindb)) ? $setindb : $default )
Но вам судить, у чего проще :)