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

    (PHP 5 >= 5.1.0, PHP 7)

    Returns an iterator for the current entry if it is an array or an object

    说明

    publicRecursiveArrayIterator::getChildren( void) :RecursiveArrayIterator

    Returns an iterator for the current iterator entry.

    参数

    此函数没有参数。

    返回值

    An iterator for the current entry, if it is an array or object.

    错误/异常

    An InvalidArgumentException will be thrown if the current entry does not contain an array or an object.

    范例

    RecursiveArrayIterator::getChildren() example

    <?php
    $fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));
    $iterator = new RecursiveArrayIterator($fruits);
    while ($iterator->valid()) {
        if ($iterator->hasChildren()) {
            // print all children
            foreach ($iterator->getChildren() as $key => $value) {
                echo $key . ' : ' . $value . "\n";
            }
        } else {
            echo "No children.\n";
        }
        $iterator->next();
    }
    ?>
    

    以上例程会输出:

    No children.
    No children.
    a : apple
    p : pear
    

    参见

    • RecursiveArrayIterator::hasChildren() Returns whether current entry is an array or an object
    RecursiveArrayIterator::getChildrens returns a copy of the children, not a reference:
    <?php
    $stack = array ("some" => "value",
            array ("subsome" => "subvalue", array ("subsubsome" => "subsubvalue")),
            "some1" => "value1");
    $object = new RecursiveArrayIterator ($stack);
    $object->next ();
    $second_object = &$object->getChildren ();
    $second_object->next ();
    $third_object = &$second_object->getChildren ();
    $third_object->offsetSet ("subsubsome", "subsubdiferent");
    var_dump ($object);
    var_dump ($second_object);
    var_dump ($third_object);
    ?>
    returns: 
    object(RecursiveArrayIterator)#1 (1) {
     ["storage":"ArrayIterator":private]=>
     array(3) {
      ["some"]=>
      string(5) "value"
      [0]=>
      array(2) {
       ["subsome"]=>
       string(8) "subvalue"
       [0]=>
       array(1) {
        ["subsubsome"]=>
        string(11) "subsubvalue" <--- expected to be changed
       }
      }
      ["some1"]=>
      string(6) "value1"
     }
    }
    object(RecursiveArrayIterator)#2 (1) {
     ["storage":"ArrayIterator":private]=>
     array(2) {
      ["subsome"]=>
      string(8) "subvalue"
      [0]=>
      array(1) {
       ["subsubsome"]=>
       string(11) "subsubvalue" <--- expected to be changed
      }
     }
    }
    object(RecursiveArrayIterator)#3 (1) {
     ["storage":"ArrayIterator":private]=>
     array(1) {
      ["subsubsome"]=>
      string(14) "subsubdiferent"
     }
    }