original_string: protected function &resolveAttributePath($name, $writeContext = false)
      {
          $array = &$this->attributes;
          $name = (0 === strpos($name, $this->namespaceCharacter)) ? substr($name, 1) : $name;
  
          // Check if there is anything to do, else return
          if (!$name) {
              return $array;
          }
  
          $parts = explode($this->namespaceCharacter, $name);
          if (\count($parts) < 2) {
              if (!$writeContext) {
                  return $array;
              }
  
              $array[$parts[0]] = [];
  
              return $array;
          }
  
          unset($parts[\count($parts) - 1]);
  
          foreach ($parts as $part) {
              if (null !== $array && !\array_key_exists($part, $array)) {
                  if (!$writeContext) {
                      $null = null;
  
                      return $null;
                  }
  
                  $array[$part] = [];
              }
  
              $array = &$array[$part];
          }
  
          return $array;
      }
code: protected function &resolveAttributePath($name, $writeContext = false)
      {
          $array = &$this->attributes;
          $name = (0 === strpos($name, $this->namespaceCharacter)) ? substr($name, 1) : $name;
  
          // Check if there is anything to do, else return
          if (!$name) {
              return $array;
          }
  
          $parts = explode($this->namespaceCharacter, $name);
          if (\count($parts) < 2) {
              if (!$writeContext) {
                  return $array;
              }
  
              $array[$parts[0]] = [];
  
              return $array;
          }
  
          unset($parts[\count($parts) - 1]);
  
          foreach ($parts as $part) {
              if (null !== $array && !\array_key_exists($part, $array)) {
                  if (!$writeContext) {
                      $null = null;
  
                      return $null;
                  }
  
                  $array[$part] = [];
              }
  
              $array = &$array[$part];
          }
  
          return $array;
      }
code_tokens: protected function & resolveAttributePath ( $ name , $ writeContext = false ) { $ array = & $ this -> attributes ; $ name = ( 0 === strpos ( $ name , $ this -> namespaceCharacter ) ) ? substr ( $ name , 1 ) : $ name ; // Check if there is anything to do, else return if ( ! $ name ) { return $ array ; } $ parts = explode ( $ this -> namespaceCharacter , $ name ) ; if ( \ count ( $ parts ) < 2 ) { if ( ! $ writeContext ) { return $ array ; } $ array [ $ parts [ 0 ] ] = [ ] ; return $ array ; } unset ( $ parts [ \ count ( $ parts ) - 1 ] ) ; foreach ( $ parts as $ part ) { if ( null !== $ array && ! \ array_key_exists ( $ part , $ array ) ) { if ( ! $ writeContext ) { $ null = null ; return $ null ; } $ array [ $ part ] = [ ] ; } $ array = & $ array [ $ part ] ; } return $ array ; }
docstring: Resolves a path in attributes property and returns it as a reference.
  
  This method allows structured namespacing of session attributes.
  
  @param string $name         Key name
  @param bool   $writeContext Write context, default false
  
  @return array
docstring_tokens: Resolves a path in attributes property and returns it as a reference .