[php] PHP 記法: empty($hoge) and $hoge = 'huni';

こんな書き方出来たなんて今まで知りませんでした orz
じゃぁどうやっていたかというと,

if (empty($hoge)) $hoge = 'huni';

でもブレース無しの if はキモいので

if (empty($hoge)) {
  $hoge = 'huni';
}

とか三行使ってだらだら書いてたところ Flexy の中の人のエントリで下記の記法を発見,

empty($hoge) and $hoge = 'huni';

これでも行けるのか! 今度からコレで行きます。and/or ってのがキモいのですが, 軽く書けるという魅力には勝てない。
実際には変数検査&代入より

function_exists('__autoload') and spl_autoload_register('__autoload');

こう書けるのが嬉しい。

PHP6 からは三項演算子の省略形が可能になって

// before 
$hoge = (empty($hoge)) ? $hoge : 'huni'; 
// after 
$hoge = empty($hoge) ?: 'huni';

になる予定があったような…


……
どれも微妙に見える pq