PHP警告:为foreach()提供的参数无效,但XML对象看起来很好

时间:2017-11-04 19:00:58

标签: php simplexml

我创建了一个SimpleXMLElement,如下所示:

$catSearchXml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>'.$categoryContainer);

然后我尝试使用以下方法循环使用值:

foreach ( $catSearchXML->categoryHistogram as $searchCategory )

我收到以下错误:

PHP Warning:  Invalid argument supplied for foreach()

当我执行var_dump($catSearchXml)时,我得到以下内容:

object(SimpleXMLElement)#18 (1) {
    ["categoryHistogram"]=> array(3) {
        [0]=> object(SimpleXMLElement)#26 (4) {
            ["categoryId"]=> string(3) "293" 
            ["categoryName"]=> string(14) "Sound & Vision" 
            ["count"]=> string(3) "123" 
            ["childCategoryHistogram"]=> array(8) { 
                [0]=> object(SimpleXMLElement)#6 (3) { 
                    ["categoryId"]=> string(5) "14969" 
                    ["categoryName"]=> string(27) "Home Audio & HiFi Separates" 
                    ["count"]=> string(2) "89" 
                }
                [1]=> etc...

当我检查is_array($catSearchXml->categoryHistogram)时,它等于假

以下内容不返回任何内容:$catSearchXML->categoryHistogram[0]->categoryName

任何想法,因为这是我的头脑?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您将自己踢到这里,但是您已定义$catSearchXml,并且您正在尝试循环$catSearchXML。 PHP变量名称区分大小写。