为什么 is_array() 返回 false?
我有这个 SimpleXML 对象:
object(SimpleXMLElement)#176 (1) {
["record"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#39 (2) {
["f"]=>
array(2) {
[0]=>
string(13) "stuff"
[1]=>
string(1) "1"
}
}
[1]=>
object(SimpleXMLElement)#37 (2) {
["f"]=>
array(2) {
[0]=>
string(13) "more stuff"
[1]=>
string(3) "90"
}
}
}
为什么 is_array($object->record) 返回 false?它清楚地表明这是一个数组。为什么我无法使用 is_array 检测到它?
另外,我无法使用 (array) $object->record 将其转换为数组。我收到此错误:
警告:目前尚无法 将复杂类型分配给属性
I have this SimpleXML object:
object(SimpleXMLElement)#176 (1) {
["record"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#39 (2) {
["f"]=>
array(2) {
[0]=>
string(13) "stuff"
[1]=>
string(1) "1"
}
}
[1]=>
object(SimpleXMLElement)#37 (2) {
["f"]=>
array(2) {
[0]=>
string(13) "more stuff"
[1]=>
string(3) "90"
}
}
}
Why does is_array($object->record) return false? It clearly says it's an array. Why can't I detect it using is_array?
Also, I am unable to cast it as an array using (array) $object->record. I get this error:
Warning: It is not yet possible to
assign complex types to properties
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
SimpleXML 节点是可以包含其他 SimpleXML 节点的对象。使用iterator_to_array()。
SimpleXML nodes are objects that can contain other SimpleXML nodes. Use
iterator_to_array().
它不是一个数组。
var_dump
输出具有误导性。考虑:输出:
正如您在第二个
var_dump
中看到的,它实际上是一个SimpleXMLElement
。It's not an array. The
var_dump
output is misleading. Consider:Output:
As you can see by the second
var_dump
, it is actually aSimpleXMLElement
.我使用
count()
函数解决了这个问题:I solved the problem using
count()
function: