original_string: 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;
      }
code: 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;
      }
code_tokens: 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 ; }
docstring: 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
docstring_tokens: Return a node in an array structure