original_string: public function remove($optionNames)
      {
          if ($this->locked) {
              throw new AccessException('Options cannot be removed from a lazy option or normalizer.');
          }
  
          foreach ((array) $optionNames as $option) {
              unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
              unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option]);
          }
  
          return $this;
      }
code: public function remove($optionNames)
      {
          if ($this->locked) {
              throw new AccessException('Options cannot be removed from a lazy option or normalizer.');
          }
  
          foreach ((array) $optionNames as $option) {
              unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
              unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option]);
          }
  
          return $this;
      }
code_tokens: public function remove ( $ optionNames ) { if ( $ this -> locked ) { throw new AccessException ( 'Options cannot be removed from a lazy option or normalizer.' ) ; } foreach ( ( array ) $ optionNames as $ option ) { unset ( $ this -> defined [ $ option ] , $ this -> defaults [ $ option ] , $ this -> required [ $ option ] , $ this -> resolved [ $ option ] ) ; unset ( $ this -> lazy [ $ option ] , $ this -> normalizers [ $ option ] , $ this -> allowedTypes [ $ option ] , $ this -> allowedValues [ $ option ] ) ; } return $ this ; }
docstring: Removes the option with the given name.
  
  Undefined options are ignored.
  
  @param string|string[] $optionNames One or more option names
  
  @return $this
  
  @throws AccessException If called from a lazy option or normalizer
docstring_tokens: Removes the option with the given name .