original_string: public function iterateParts(callable $callable)
      {
          $parts = [];
          foreach ($this->_conditions as $k => $c) {
              $key =& $k;
              $part = $callable($c, $key);
              if ($part !== null) {
                  $parts[$key] = $part;
              }
          }
          $this->_conditions = $parts;
  
          return $this;
      }
code: public function iterateParts(callable $callable)
      {
          $parts = [];
          foreach ($this->_conditions as $k => $c) {
              $key =& $k;
              $part = $callable($c, $key);
              if ($part !== null) {
                  $parts[$key] = $part;
              }
          }
          $this->_conditions = $parts;
  
          return $this;
      }
code_tokens: public function iterateParts ( callable $ callable ) { $ parts = [ ] ; foreach ( $ this -> _conditions as $ k => $ c ) { $ key = & $ k ; $ part = $ callable ( $ c , $ key ) ; if ( $ part !== null ) { $ parts [ $ key ] = $ part ; } } $ this -> _conditions = $ parts ; return $ this ; }
docstring: Executes a callable function for each of the parts that form this expression.
  
  The callable function is required to return a value with which the currently
  visited part will be replaced. If the callable function returns null then
  the part will be discarded completely from this expression.
  
  The callback function will receive each of the conditions as first param and
  the key as second param. It is possible to declare the second parameter as
  passed by reference, this will enable you to change the key under which the
  modified part is stored.
  
  @param callable $callable The callable to apply to each part.
  @return $this
docstring_tokens: Executes a callable function for each of the parts that form this expression .