| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | <?php/** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */namespace yii\db\conditions;use yii\base\InvalidArgumentException;use yii\db\ExpressionInterface;/** * Class InCondition represents `IN` condition. * * @author Dmytro Naumenko <d.naumenko.a@gmail.com> * @since 2.0.14 */class InCondition implements ConditionInterface{    /**     * @var string $operator the operator to use (e.g. `IN` or `NOT IN`)     */    private $operator;    /**     * @var string|string[] the column name. If it is an array, a composite `IN` condition     * will be generated.     */    private $column;    /**     * @var ExpressionInterface[]|string[]|int[] an array of values that [[column]] value should be among.     * If it is an empty array the generated expression will be a `false` value if     * [[operator]] is `IN` and empty if operator is `NOT IN`.     */    private $values;    /**     * SimpleCondition constructor     *     * @param string|string[] the column name. If it is an array, a composite `IN` condition     * will be generated.     * @param string $operator the operator to use (e.g. `IN` or `NOT IN`)     * @param array an array of values that [[column]] value should be among. If it is an empty array the generated     * expression will be a `false` value if [[operator]] is `IN` and empty if operator is `NOT IN`.     */    public function __construct($column, $operator, $values)    {        $this->column = $column;        $this->operator = $operator;        $this->values = $values;    }    /**     * @return string     */    public function getOperator()    {        return $this->operator;    }    /**     * @return mixed     */    public function getColumn()    {        return $this->column;    }    /**     * @return ExpressionInterface[]|string[]|int[]     */    public function getValues()    {        return $this->values;    }    /**     * {@inheritdoc}     * @throws InvalidArgumentException if wrong number of operands have been given.     */    public static function fromArrayDefinition($operator, $operands)    {        if (!isset($operands[0], $operands[1])) {            throw new InvalidArgumentException("Operator '$operator' requires two operands.");        }        return new static($operands[0], $operator, $operands[1]);    }}
 |