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

PHP Warning: Invalid argument supplied for foreach() but XML object looks fine

我创建了一个 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) 时,它等于 false

下面returns什么都没有:$catSearchXML->categoryHistogram[0]->categoryName

我有什么想法吗???

提前致谢。

你会在这里踢自己,但你已经定义了 $catSearchXml,你正试图循环 $catSearchXML。 PHP变量名区分大小写。