一个奇怪的 PHP 对象

发布于 2024-11-27 02:34:20 字数 380 浏览 0 评论 0原文

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

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

我的问题是,我如何访问该对象的字符串值?如果我尝试执行 $myVariable->0 ,则会出现错误。执行 $zero = '0' 然后 echo $myVariable->$zero 也不起作用,(array) $myVariable 也不起作用> 工作(发出警告)。

I'm using SimpleXML to get some data from an API. Its returning things in this format:

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

My question is, how can I possibly access the string value of this object? If I try to do $myVariable->0 that gives me an error. Doing $zero = '0' and then echo $myVariable->$zero doesn't work either, nor does (array) $myVariable work (that gives a warning).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别忘他 2024-12-04 02:34:20

诀窍是 SimpleXMLElement__toString 实现的魔术方法将返回您的 string(36) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",因此要获取您刚刚转换的字符串SimpleXMLElement 对象上的 (string):

(string)$myVariable

使用 PHP 当然可以

print $myVariable;

,因此这里不一定需要显式的 (string)

The trick is that SimpleXMLElement has __toString magic method implemented that would return your string(36) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", so to get this string you just cast (string) on your SimpleXMLElement object:

(string)$myVariable

With PHP you can

print $myVariable;

of course, so explicit (string) here is not necessarily needed.

汐鸠 2024-12-04 02:34:20

AFAIR 它是这样的:

$myVariable->{0}

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

AFAIR it's like this:

$myVariable->{0}

Edit: That would work in majority of cases, but not this one. It looks like SimpleXML implements not only __toString method like Nemoden pointed out, but also __get, so that accessing object properties in this way results in cloned object being returned.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文