English | 简体中文 | 繁體中文
查询

RecursiveIterator::hasChildren()函数—用法及示例

「 检查当前迭代器位置的节点是否有子节点 」


函数名称:RecursiveIterator::hasChildren()

适用版本:PHP 5 >= 5.1.0, PHP 7

函数描述:该函数用于检查当前迭代器位置的节点是否有子节点。

用法:bool RecursiveIterator::hasChildren ( void )

参数:无

返回值:返回一个布尔值,表示当前节点是否有子节点。如果有子节点,则返回true,否则返回false。

示例:

// 创建一个自定义的递归迭代器类
class MyRecursiveIterator extends RecursiveArrayIterator {
    public function hasChildren() {
        // 判断当前节点是否为数组
        return is_array($this->current());
    }
}

// 创建一个多维数组
$data = array(
    'foo' => array(
        'bar' => 'baz',
        'qux' => array(
            'quux' => 'quuz'
        )
    )
);

// 创建递归迭代器对象
$iterator = new RecursiveIteratorIterator(new MyRecursiveIterator($data), RecursiveIteratorIterator::SELF_FIRST);

// 遍历迭代器并判断当前节点是否有子节点
foreach ($iterator as $key => $value) {
    if ($iterator->hasChildren()) {
        echo $key . " has children\n";
    } else {
        echo $key . " does not have children\n";
    }
}

输出结果:

foo has children
bar does not have children
qux has children
quux does not have children

以上示例中,我们创建了一个自定义的递归迭代器类MyRecursiveIterator,重写了hasChildren()方法,用于判断当前节点是否为数组。然后,我们创建了一个多维数组$data,并将其传递给递归迭代器对象$iterator。在遍历迭代器的过程中,通过调用hasChildren()方法来判断当前节点是否有子节点,并输出相应的结果。

补充纠错
热门PHP函数
分享链接