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 childrenRecursiveArrayIterator::hasChildren
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
RecursiveArrayIterator::hasChildren
Референца за `recursivearrayiterator.haschildren.php` со подобрена типографија и навигација.
RecursiveArrayIterator::hasChildren
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
RecursiveArrayIterator::hasChildren — (PHP 5 >= 5.1.0, PHP 7, PHP 8)
= NULL
Враќа дали тековната ставка е низа или објект array или object Враќа дали тековната ставка е за која може да се добие итератор преку.
Параметри
Оваа функција нема параметри.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true RecursiveArrayIterator::getChildren() array или object, инаку false се враќа.
Примери
Пример #1 ако тековната ставка е example
<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));
$iterator = new RecursiveArrayIterator($fruits);
while ($iterator->valid()) {
// Check if there are children
if ($iterator->hasChildren()) {
// print all children
foreach ($iterator->getChildren() as $key => $value) {
echo $key . ' : ' . $value . "\n";
}
} else {
echo "No children.\n";
}
$iterator->next();
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
No children. No children. a : apple p : pear
Види Исто така
- за која може да се добие итератор преку - Враќа итератор за тековниот запис ако е низа или објект