Ben standart üçlü PHP defacto olduğunu düşünüyorum:
$var = $foo ? $foo : 'default';
echo $foo ? $foo : 'default';
Ancak bazı durumlarda biraz temiz olabilir bir çift diğer hile vardır:
//these are very close but can't be echo'd inline like a ternary
$var = $foo OR $var = 'default';//assigning a default to $var if $foo is falsy
($var = $foo) || $var = 'default';//same effect as above
isset($var) || $var = 'default';//making sure $var is set
İşte satır içi echo'd olabilir biri:
$var = ($foo) ?: 'default';//partial ternary
echo ($foo) ?: 'default';//aka ternary shortcut (PHP 5.3+ only)
Önemli bir not vars ayarlanmadýnda bu bir sürü hataları yayarlar olabilir: (
echo @($foo) ?: 'default';//@ fixes it but isn't considered good practice
Onlar iç içe olduğunuzda üçlü yaklaşım kullanarak değil değer olabilir bir yerdir:
$user = (($user)?$user:(($user_name)?$user_name:(($user_id)?$user_id:'User')));
echo 'Welcome '.$user;//is pretty messy
($user = $user) || ($user = $user_name) || ($user = $user_id) || ($user = 'User');
echo 'Welcome '.$user;//is more readable
Her neyse, çok eğlenceli keşfetmek.