必要なことを行うために使用するコードを減らします。
_?_:_
形式を使用して変数を再度指定する必要はありません。
echo $var?:"default";
と同じです
echo $var?$var:"default";
空のチェックに関しては、@
通知をミュートするために使用できます。技術的な影響についてはわかりませんが、この形式を使用しているときにすでに独自のチェックを行っています。
echo @$non_existing_var?:"default";
いくつかの例:
<?php
$nope = null;
$yup = "hello";
echo ($nope?:$yup) . "\n" ;
echo ($yup?:$nope) . "\n" ;
$items = [ 'one', 'two', false, 'three', 'four', null ];
foreach($items as $item):
echo($item?:"default shown (".var_export($item,true).")")."\n";
endforeach;
echo(@$non_existing?:"default for non-existant variable!");
?>
出力:
$ php variabledefault.php
hello
hello
one
two
default shown (false)
three
four
default shown (NULL)
default for non-existant variable!%