• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SimpleXMLIterator::hasChildren()

    (PHP 5, PHP 7)

    Checks whether the current element has sub elements

    说明

    publicSimpleXMLIterator::hasChildren(void): bool

    This method checks whether the current SimpleXMLIterator element has sub-elements.

    参数

    此函数没有参数。

    返回值

    TRUE if the current element has sub-elements, otherwise FALSE

    范例

    Example #1 Check whether the current element has sub-elements

    <?php
    $xml = <<<XML
    <books>
        <book>
            <title>PHP Basics</title>
            <author>Jim Smith</author>
        </book>
        <book>XML basics</book>
    </books>
    XML;
    $xmlIterator = new SimpleXMLIterator( $xml );
    for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
        if($xmlIterator->hasChildren()) {
            var_dump($xmlIterator->current());
        }
    }
    ?>
    

    以上例程会输出:

    object(SimpleXMLIterator)#2 (2) {
      ["title"]=>
      string(10) "PHP Basics"
      ["author"]=>
      string(9) "Jim Smith"
    }
    
    Hello,
    just a note for people like me who encounter the problems :
    <?php
    foreach($xmlIterator as $x)
    {
      if($x->hasChildren())
      {
        //never reach
        echo 'x : ';
        var_dump($x->current());
      }
      if($xmlIterator->hasChildren())
      {
        echo 'iterator : ';
        var_dump($x->current()); //all time null
        var_dump($xmlIterator->current());
      }
    }
    ?>