simpleXMLのバグ
今日気づいたことがある。これはsimpleXMLのバグでしょ。
simpleXMLElement->asXML(FILE_PATH)
上記のメソッドを実行すると、FILE_PATHにXMLを書き込んでくれることになっている。マニュアルによると書き込みに成功するとtrue、失敗するとfalseを返すことになっている。確かにマニュアルにはそう書いてある。
実際はそうはならない。書き込みに成功した場合、引数なしの場合と同様にXMLを返してきた。書き込みに失敗した場合、成功時と同じようにXMLを返してきた。おいおい。なぜだろう。ちょっと心配になって、最初試していたレンタルサーバとは別のレンタルサーバに同じファイルを設置して試してみた。やっぱり結果は同じ。
こんなバグがあるのか!、と思って調べてみたけど検索結果には出てこない。ひょっとして自分の書き方が間違っているのだろうか。それともバグの第一発見者かも?。
最初は以下のように記述していた。
if(!$xmlObj->asXML(FILE_NAME)){
しかし成否の判別ができないことがわかったので以下のように書き直すことにした。
if(!@file_put_contents(FILE_NAME,$xmlObj->asXML())){
・・・。ばかげてる。誰か追試してくれないかな。