original_string: public function add($key, $amount) {
  			if (!$this->allowed($key))
  				throw new OutOfBoundsException(sprintf('"%s" is not an allowed key in strict mode', $key));
  			else if (!$this->has($key))
  				$this->counts->put($key, 0);
  
  			$this->counts->put($key, $this->counts->get($key) + $amount);
  
  			return $this->counts->get($key);
  		}
code: public function add($key, $amount) {
  			if (!$this->allowed($key))
  				throw new OutOfBoundsException(sprintf('"%s" is not an allowed key in strict mode', $key));
  			else if (!$this->has($key))
  				$this->counts->put($key, 0);
  
  			$this->counts->put($key, $this->counts->get($key) + $amount);
  
  			return $this->counts->get($key);
  		}
code_tokens: public function add ( $ key , $ amount ) { if ( ! $ this -> allowed ( $ key ) ) throw new OutOfBoundsException ( sprintf ( '"%s" is not an allowed key in strict mode' , $ key ) ) ; else if ( ! $ this -> has ( $ key ) ) $ this -> counts -> put ( $ key , 0 ) ; $ this -> counts -> put ( $ key , $ this -> counts -> get ( $ key ) + $ amount ) ; return $ this -> counts -> get ( $ key ) ; }
docstring: Adds the given amount to a key. If the key does not exist and the counter is not running in strict mode, it
  will be initialized to zero.
  
  @throws OutOfBoundsException if the counter is in strict mode and the key was not defined at construction
  
  @param  mixed     $key    the key to add to
  @param  int|float $amount the amount to add to the key
  @return int|float the new value of the key
docstring_tokens: Adds the given amount to a key . If the key does not exist and the counter is not running in strict mode it will be initialized to zero .