PHP5.4のSimpleXMLElement

どうもPHP5.4のSimpleXMLElementの審議値の判定がおかしい。
おかしいというか、少なくともPHP5.3とちょっと違うようだ。

次のコード

<?php
function check() {
$x = new SimpleXMLElement('xxx123');
return $x->INFO[0]->DEVICE[0];
}

if ($a=check()) {
print $a."\n";
print "OK\n";
} else {
print $a."\n";
print "NG\n";
}
?>

を実行した際に、php5.3系ではOKが出る(if文で真判定)が、php5.4.17では
NGが出る(if文で偽判定)

なお、php5.3でもphp5.4でも、$aを文字列変換した際は123が入っているので、表示上は123になっている。
$aを論理値に変換した際、php5.3では真になるのに、php5.4では偽になってしまう。

phpのバージョンの問題というより、SimpleXMLElementの問題かもしれない。
あと、上記の例でDATEタグを削除すると、5.3でも5.4でも真になる。
PHP5.4では呼び出しているのはDATEタグではなくDEVICEタグの方なのに、真偽値はDATEタグがあるかどうかに左右されるようだ。(やはりバグかな?)