original_string: public function applyXor(BitArray $bits)
  	{
  		if ($this->size == $bits->size)
  		{
  			$length = strlen($this->data);
  
  			for ($index = 0; $index < $length; $index++)
  			{
  				$this->data[$index] = chr(ord($this->data[$index]) ^ ord($bits->data[$index]));
  			}
  
  			return $this;
  		}
  		else
  		{
  			throw new \InvalidArgumentException('Argument must be of equal size');
  		}
  	}
code: public function applyXor(BitArray $bits)
  	{
  		if ($this->size == $bits->size)
  		{
  			$length = strlen($this->data);
  
  			for ($index = 0; $index < $length; $index++)
  			{
  				$this->data[$index] = chr(ord($this->data[$index]) ^ ord($bits->data[$index]));
  			}
  
  			return $this;
  		}
  		else
  		{
  			throw new \InvalidArgumentException('Argument must be of equal size');
  		}
  	}
code_tokens: public function applyXor ( BitArray $ bits ) { if ( $ this -> size == $ bits -> size ) { $ length = strlen ( $ this -> data ) ; for ( $ index = 0 ; $ index < $ length ; $ index ++ ) { $ this -> data [ $ index ] = chr ( ord ( $ this -> data [ $ index ] ) ^ ord ( $ bits -> data [ $ index ] ) ) ; } return $ this ; } else { throw new \ InvalidArgumentException ( 'Argument must be of equal size' ) ; } }
docstring: Xor with an another bit array
  
  @param   BitArray  $bits  A bit array
  
  @return  BitArray  This object for chaining
  
  @throw   \InvalidArgumentException  Argument must be of equal size
  
  @since   1.0.0
docstring_tokens: Xor with an another bit array