[Go to site: main page, start]

RecursiveArrayIterator::hasChildren

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

RecursiveArrayIterator::hasChildrenRetorna se a entrada atual é um array ou um objeto

Descrição

public function RecursiveArrayIterator::hasChildren(): bool

Retorna se a entrada atual é um array ou um object para o qual um iterador pode ser obtido via RecursiveArrayIterator::getChildren().

Parâmetros

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

Valor Retornado

Retorna true se a entrada atual é um array ou um object, caso contrário, false é retornado.

Exemplos

Exemplo #1 Exemplo de RecursiveArrayIterator::hasChildren()

<?php
$fruits = array("a" => "limão", "b" => "laranja", array("a" => "maçã", "p" => "pêra"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    // Verifica se há filhos
    if ($iterator->hasChildren()) {
        // imprime todos os filhos
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Sem filhos.\n";
    }

    $iterator->next();
}
?>

O exemplo acima produzirá:

Sem filhos.
Sem filhos.
a : maçã
p : pêra

Veja Também

adicionar nota

Notas de Usuários 1 note

up
2
Dominik
11 years ago
hasChildren() works as documented here, but not as its name suggests. 

The method does not return whether the current entry actually *has* children. It only returns whether the element's type is one that is able to have children.

This is a bit counterintuitive if you are processing empty arrays.

Example:

<?php
$data = array(
    "element one" => array(true),
    "element two" => array(),
    "element three" => array(true),
);

$i = new RecursiveIteratorIterator(new RecursiveArrayIterator($data),RecursiveIteratorIterator::SELF_FIRST);

foreach($i as $key => $value)
{
    $type = gettype($value);
    $depth = $i->getDepth();

    if($i->hasChildren()) {
        echo "$depth: $key ($type) has children\n";
    } else {
        echo "$depth: $key ($type) has no children\n";
    }
}
?>

Result:

0: element one (array) has children
1: 0 (boolean) has no children
0: element two (array) has children
0: element three (array) has children
1: 0 (boolean) has no children
To Top