RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

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

Descrierea

public RecursiveArrayIterator::getChildren ( ) : RecursiveArrayIterator

Returns an iterator for the current iterator entry.

Parametri

Această funcție nu are parametri.

Valorile întoarse

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

Erori/Excepții

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

Exemple

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

Exemplul de mai sus va afișa:

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

A se vedea și

add a note add a note

User Contributed Notes 1 note

up
1
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