我尝试检查SimpleXml元素是否为数组。
我在PHP doc上看到了给出的例子here,所以似乎可以检查一个节点是否是一个数组。但就我而言,我做不到。is_array()在SimpleXml数组元素上返回false
一个var_dump($myElement)
给我:
object(SimpleXMLElement)#701 (4) {
["@attributes"]=> array(1) {
["id"]=> string(7) "5831377"
}
["openPeriod"]=> string(10) "2016-04-01"
["closePeriod"]=> string(10) "2016-05-31"
["periods"]=> object(SimpleXMLElement)#703 (1) {
["period"]=> array(2) {
[0]=> object(SimpleXMLElement)#707 (3) {
["startPeriod"]=> string(8) "10:00:00"
["endPeriod"]=> string(8) "12:30:00"
["weekDays"]=> string(51) "monday,tuesday,wednesday,thursday,friday,saturday,sunday"
}
[1]=> object(SimpleXMLElement)#702 (3) {
["startPeriod"]=> string(8) "14:00:00"
["endPeriod"]=> string(8) "20:00:00"
["weekDays"]=> string(51) "monday,tuesday,wednesday,thursday,friday,saturday,sunday"
}
}
}
}
根据$myElement
,$myElement->periods->period
可能是一个对象或数组。
但在给定的情况下,debug(is_array($myElement->periods->period))
返回false
。
你能告诉我为什么吗?
编辑
这里是原始的XML元素:
<openingPeriod id="5831487">
<openPeriod>2016-04-01</openPeriod>
<closePeriod>2016-05-31</closePeriod>
<periods>
<period>
<startPeriod>10:00:00</startPeriod>
<endPeriod>12:30:00</endPeriod>
<weekDays>monday,tuesday,wednesday,thursday,friday,saturday,sunday</weekDays>
</period>
<period>
<startPeriod>14:00:00</startPeriod>
<endPeriod>20:00:00</endPeriod>
<weekDays>monday,tuesday,wednesday,thursday,friday,saturday,sunday</weekDays>
</period>
</periods>
</openingPeriod>
什么是你的PHP版本! – Naincy
@Naincy,我使用PHP7 – 2ndGAB