original_string: public function add( $key, $value ) {
  		if ( ! array_key_exists( $key, $this->attributes ) ) {
  			$this->attributes[ $key ] = $value;
  		} else {
  			if ( ! \is_array( $this->attributes[ $key ] ) ) {
  				$this->attributes[ $key ] = array( $this->attributes[ $key ], $value );
  			} else {
  				$this->attributes[ $key ][] = $value;
  			}
  		}
  	}
code: public function add( $key, $value ) {
  		if ( ! array_key_exists( $key, $this->attributes ) ) {
  			$this->attributes[ $key ] = $value;
  		} else {
  			if ( ! \is_array( $this->attributes[ $key ] ) ) {
  				$this->attributes[ $key ] = array( $this->attributes[ $key ], $value );
  			} else {
  				$this->attributes[ $key ][] = $value;
  			}
  		}
  	}
code_tokens: public function add ( $ key , $ value ) { if ( ! array_key_exists ( $ key , $ this -> attributes ) ) { $ this -> attributes [ $ key ] = $ value ; } else { if ( ! \ is_array ( $ this -> attributes [ $ key ] ) ) { $ this -> attributes [ $ key ] = array ( $ this -> attributes [ $ key ] , $ value ) ; } else { $ this -> attributes [ $ key ] [ ] = $ value ; } } }
docstring: Add to an new or existing value.
  This will promote scalar values into an array to contain multiple values.
  
  @param string $key
  @param mixed  $value
docstring_tokens: Add to an new or existing value . This will promote scalar values into an array to contain multiple values .