original_string: public function andAdd()
      {
          $args = func_get_args();
          $value = array_shift($args);
  
          $params = [];
          while ($args) {
              $param = array_shift($args);
              if (is_array($param)) {
                  $params = array_merge($params, $param);
              } else {
                  $params[] = $param;
              }
          }
  
          $value = new WhereConditionValue($this, $value, $params);
          $this->add($value);
  
          return $this;
      }
code: public function andAdd()
      {
          $args = func_get_args();
          $value = array_shift($args);
  
          $params = [];
          while ($args) {
              $param = array_shift($args);
              if (is_array($param)) {
                  $params = array_merge($params, $param);
              } else {
                  $params[] = $param;
              }
          }
  
          $value = new WhereConditionValue($this, $value, $params);
          $this->add($value);
  
          return $this;
      }
code_tokens: public function andAdd ( ) { $ args = func_get_args ( ) ; $ value = array_shift ( $ args ) ; $ params = [ ] ; while ( $ args ) { $ param = array_shift ( $ args ) ; if ( is_array ( $ param ) ) { $ params = array_merge ( $ params , $ param ) ; } else { $ params [ ] = $ param ; } } $ value = new WhereConditionValue ( $ this , $ value , $ params ) ; $ this -> add ( $ value ) ; return $ this ; }
docstring: add condition.
  
  1. $cond->where->add('foo = ?', $foo);
  2. $cond->where->add('foo = ? AND bar = ?', [$foo, $bar]);
  3. $cond->where->add('foo = ? AND bar = ?', $foo, $bar);
  4. $cond->where->add('foo = :foo AND bar = :bar', [':foo' => $foo, ':bar' => $bar]);
  
  @return  Samurai\Onikiri\Criteria\WhereCondition
docstring_tokens: add condition .