xref: /plugin/combo/ComboStrap/TreeVisit.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeaunamespace ComboStrap;
4*04fd306cSNickeau
5*04fd306cSNickeau
6*04fd306cSNickeauclass TreeVisit
7*04fd306cSNickeau{
8*04fd306cSNickeau
9*04fd306cSNickeau    public static function visit(TreeNode $tree, Callable $function, int $level = 0)
10*04fd306cSNickeau    {
11*04fd306cSNickeau        call_user_func($function, $tree, $level);
12*04fd306cSNickeau        if ($tree->hasChildren()) {
13*04fd306cSNickeau            $childLevel = $level + 1;
14*04fd306cSNickeau            foreach ($tree->getChildren() as $child) {
15*04fd306cSNickeau                self::visit($child, $function, $childLevel);
16*04fd306cSNickeau            }
17*04fd306cSNickeau        }
18*04fd306cSNickeau
19*04fd306cSNickeau    }
20*04fd306cSNickeau
21*04fd306cSNickeau}
22