一个奇怪的PHP对象

时间:2011-07-28 03:59:40

标签: php simplexml

我正在使用SimpleXML从API获取一些数据。它以这种格式返回的东西:

object(SimpleXMLElement)#10 (1) {
  [0]=>
  string(36) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

我的问题是,我怎样才能访问此对象的字符串值?如果我尝试$myVariable->0给我一个错误。执行$zero = '0'然后echo $myVariable->$zero也不起作用,(array) $myVariable也不起作用(这会发出警告)。

2 个答案:

答案 0 :(得分:4)

诀窍是SimpleXMLElement已经实现了__toString魔术方法,它会返回你的string(36) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",所以要在你的SimpleXMLElement对象上弹出这个字符串(字符串) :

(string)$myVariable

使用PHP,您可以

print $myVariable;

当然,不一定需要明确的(string)

答案 1 :(得分:1)

AFAIR就像这样:

$myVariable->{0}

编辑:这在大多数情况下都有效,但不适用于此情况。看起来SimpleXML不仅实现了像Nemoden指出的__toString方法,还实现了__get,因此以这种方式访问​​对象属性会导致返回克隆对象。