simplexmlはstringにキャストした方が使いやすい

例えばあるxmlをパースすることを考える

<?php
$xml=simplexml_load_string($result);
$name=array();
foreach($xml as $item){
    $name[$i]=$item->name;//ここの文
    $i++;
}
var_dump($name);

ここでダンプしたデータは

array
  0 => 
    object(SimpleXMLElement)[5]
      string 'hoge' (length=4)
  1 => 
    object(SimpleXMLElement)[4]
      string 'fuga' (length=4)

のようにオブジェクトの中にstringが入っている形になっている。基本的にはそのままでもいいけど、 何かのAPIに文字列を投げる必要があるときに、キャストしないとエラーを吐いてしまう。 ここではまって解決まで時間かかった。


スポンサーリンク





<?php
$xml=simplexml_load_string($result);
$name=array();
foreach($xml as $item){
    $name[$i]=(string)$item->name;//ここの文
    $i++;
}
var_dump($name);

こんな感じらしい