$cane->traverse( 'ownCane', function( $cane ) {
echo $actual_depth;
});
$level = 0;
$nodes[0]->traverse( 'ownNode', function( $node ) use ( &$level ) {
$level ++;
echo $node->name.$level;
} );
$property = 'cane';
$bean = R::load($property,1); echo $bean->name.'<br />'; $cats = array();
$bean->traverse( 'own'.ucwords($property), function( $bean ) use ( &$property ) { global $cats; $level = 0; $cat = new stdClass(); $cat->id = $bean->id; $cat->name = $bean->name;
$getLevel = function ($bean) use (&$getLevel,&$level,&$cat,&$property) { if ($bean) { $level++; $getLevel($bean->$property); } else $cat->level = $level; };
$getLevel($bean); $cats[] = $cat; });