RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveArrayIterator::getChildrenReturns an iterator for the current entry if it is an array or an object

Descrição

public RecursiveArrayIterator::getChildren ( ) : RecursiveArrayIterator

Returns an iterator for the current iterator entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

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

Erros

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

Exemplos

Exemplo #1 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();
}
?>

O exemplo acima irá imprimir:

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

Veja Também

add a note add a note

User Contributed Notes 1 note

up
2
814ckf0x
10 years ago
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"
  }
}
To Top