PHP SimpleXMLElement:Count不计算Object的所有公共属性

时间:2012-09-18 18:36:30

标签: php object simplexml

我有以下代码:

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

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

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) { ... }

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

1 个答案:

答案 0 :(得分:3)

表单PHP 5.3及更高版本SimpleXMLElement确实使用计数函数作为长度!

$count = $b->count();

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

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

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