0

我有以下代码:

$b = $br->b;
var_dump($b);
$iCountBlock = count($b);

其中 b 是 SimpleXMLElement 对象。var 转储输出:

object(SimpleXMLElement)[16]
public 'blockID' => string '160999' (length=6)
public 'blockDesc' => string 'Description' (length=37)
public 'moduleID' => string '1' (length=1)
public 'pubID' => 
  object(SimpleXMLElement)[18]
public 'contentID' => string '93305' (length=5)
public 'linkToPageID' => 
  object(SimpleXMLElement)[19]
public 'moduleFunction' => string 'replaceHTML' (length=11)
public 'moduleVars' => 
  object(SimpleXMLElement)[20]
public 'c' => 
  object(SimpleXMLElement)[21]
    public 'contentID' => string '93305' (length=5)
    public 'contentType' => string '1' (length=1)
    public 'description' => string 'new.usdish.com index redesign content' (length=37)
    public 'content' => 
      object(SimpleXMLElement)[22]

但是,$iCountBlock 被设置为 1……它似乎没有按应有的方式计算对象的所有公共属性。我还尝试使用 foreach 循环遍历 b 的每个属性,它甚至没有进入循环。

foreach($b as $key => $val) { ... }

我在这里有点不知所措,因为我不确定发生了什么。有什么想法吗?

4

1 回答 1

3

表单 PHP 5.3 和更高版本的 SimpleXMLElement 确实使用计数函数来计算长度!

$count = $b->count();

在 5.3 之前的 PHP 中,您必须使用 childern 属性来获取计数。

$count = count($b->children()); 

信息位于: http: //php.net/manual/en/simplexmlelement.count.php

于 2012-09-18T19:04:48.597 回答