code: protected function &childNode(
          /*# string */ $key,
          &$data,
          /*# bool */ $create
      ) {
          $null = null;
          if (is_array($data)) {
              if (isset($data[$key])) {
                  return $data[$key];
              } elseif ($create) {
                  $data[$key] = [];
                  return $data[$key];
              }
          }
          return $null;
      }
docs: get or create the next/child node, return NULL if not found
  
  @param  string $key
  @param  mixed $data
  @param  bool $create create the node if not exist
  @return mixed
  @access protected