protected function &searchTree(
        /*# string */ $key,
        /*# array */ &$tree,
        /*# bool */ $create = false
    ) {
        $found = &$tree;
        $parts = explode($this->field_splitter, $key);
        while (null !== ($part = array_shift($parts))) {
            if (!isset($found[$part])) {
                if ($create) {
                    $found[$part] = [];
                } else {
                    $bad = null;
                    return $bad;
                }
            }
            $found = &$found[$part];
        }
        return $found;
    }
protected function &searchTree(
        /*# string */ $key,
        /*# array */ &$tree,
        /*# bool */ $create = false
    ) {
        $found = &$tree;
        $parts = explode($this->field_splitter, $key);
        while (null !== ($part = array_shift($parts))) {
            if (!isset($found[$part])) {
                if ($create) {
                    $found[$part] = [];
                } else {
                    $bad = null;
                    return $bad;
                }
            }
            $found = &$found[$part];
        }
        return $found;
    }
protected function & searchTree ( /*# string */ $ key , /*# array */ & $ tree , /*# bool */ $ create = false ) { $ found = & $ tree ; $ parts = explode ( $ this -> field_splitter , $ key ) ; while ( null !== ( $ part = array_shift ( $ parts ) ) ) { if ( ! isset ( $ found [ $ part ] ) ) { if ( $ create ) { $ found [ $ part ] = [ ] ; } else { $ bad = null ; return $ bad ; } } $ found = & $ found [ $ part ] ; } return $ found ; }
Return a node in an array structure

@param  string $key something like 'db.auth.host'
@param  array &$tree the array tree
@param  bool $create create the node if missing
@return null|array|string the matching node
@access protected
Return a node in an array structure