気の利かないPHPの論理和

PHPで以下のようなコードを書いてバグに気付かずしばらく悩んでしまった。


$var1 = '';
$var2 = 'aaa';

$hoge = $var1 || $var2;

echo $hoge; // 'aaa'を期待

実際は、$hogeの値は1になる。
rubyなら当然'aaa'になる。
Javaのように型に厳格な言語ならまだしも、PHPは'aaa'を返して欲しかった。


if ($var1) {
$hoge = $var1;
} elseif ($var2) {
$hoge = $var2;
}
こう書くしかないのかな?