函數(shù)名稱:RecursiveIterator::hasChildren()
適用版本:PHP 5 >= 5.1.0, PHP 7
函數(shù)描述:該函數(shù)用于檢查當(dāng)前迭代器位置的節(jié)點是否有子節(jié)點。
用法:bool RecursiveIterator::hasChildren ( void )
參數(shù):無
返回值:返回一個布爾值,表示當(dāng)前節(jié)點是否有子節(jié)點。如果有子節(jié)點,則返回true,否則返回false。
示例:
// 創(chuàng)建一個自定義的遞歸迭代器類
class MyRecursiveIterator extends RecursiveArrayIterator {
public function hasChildren() {
// 判斷當(dāng)前節(jié)點是否為數(shù)組
return is_array($this->current());
}
}
// 創(chuàng)建一個多維數(shù)組
$data = array(
'foo' => array(
'bar' => 'baz',
'qux' => array(
'quux' => 'quuz'
)
)
);
// 創(chuàng)建遞歸迭代器對象
$iterator = new RecursiveIteratorIterator(new MyRecursiveIterator($data), RecursiveIteratorIterator::SELF_FIRST);
// 遍歷迭代器并判斷當(dāng)前節(jié)點是否有子節(jié)點
foreach ($iterator as $key => $value) {
if ($iterator->hasChildren()) {
echo $key . " has children\n";
} else {
echo $key . " does not have children\n";
}
}
輸出結(jié)果:
foo has children
bar does not have children
qux has children
quux does not have children
以上示例中,我們創(chuàng)建了一個自定義的遞歸迭代器類MyRecursiveIterator
,重寫了hasChildren()
方法,用于判斷當(dāng)前節(jié)點是否為數(shù)組。然后,我們創(chuàng)建了一個多維數(shù)組$data
,并將其傳遞給遞歸迭代器對象$iterator
。在遍歷迭代器的過程中,通過調(diào)用hasChildren()
方法來判斷當(dāng)前節(jié)點是否有子節(jié)點,并輸出相應(yīng)的結(jié)果。