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