0 フォロワー

クラス yii\db\ArrayExpression

継承yii\db\ArrayExpression
実装ArrayAccessCountableIteratorAggregateyii\db\ExpressionInterface
利用可能なバージョン2.0.14
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/ArrayExpression.php

クラス ArrayExpression は、配列のSQL式を表します。

このタイプの式は、条件の中でも使用できます。

$query->andWhere(['@>', 'items', new ArrayExpression([1, 2, 3], 'integer')])

これは、DBMS によって、適切に準備された条件になります。例えば、PostgreSQL では、WHERE "items" @> ARRAY[1, 2, 3]::integer[] とコンパイルされます。

公開メソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__construct() ArrayExpression コンストラクタ。 yii\db\ArrayExpression
count() オブジェクトの要素数を数えます。 yii\db\ArrayExpression
getDimension() yii\db\ArrayExpression
getIterator() 外部イテレータを取得します。 yii\db\ArrayExpression
getType() yii\db\ArrayExpression
getValue() yii\db\ArrayExpression
offsetExists() オフセットが存在するかどうか。 yii\db\ArrayExpression
offsetGet() 取得するオフセット。 yii\db\ArrayExpression
offsetSet() 設定するオフセット。 yii\db\ArrayExpression
offsetUnset() 設定解除するオフセット。 yii\db\ArrayExpression

メソッドの詳細

継承されたメソッドを隠す

__construct() public メソッド

ArrayExpression コンストラクタ。

public void __construct ( $value$type null$dimension 1 )
$value array|yii\db\QueryInterface|混合

配列の内容。値の配列、またはこれらの値を返すクエリとして表されます。単一の値は、1つの要素を含む配列として扱われます。

$type string|null

配列要素の型。デフォルトはnullで、型が明示的に指定されていないことを意味します。型が明示的に指定されておらず、DBMSがコンテキストから推測できない場合、SQLエラーが発生します。

$dimension integer

要素を選択するために必要なインデックスの数。

                public function __construct($value, $type = null, $dimension = 1)
{
    if ($value instanceof self) {
        $value = $value->getValue();
    }
    $this->value = $value;
    $this->type = $type;
    $this->dimension = $dimension;
}

            
count() public メソッド (バージョン 2.0.14 から利用可能)

オブジェクトの要素数を数えます。

public integer count ( )
戻り値 integer

カスタムカウントを整数で返します。

戻り値は整数に変換されます。

                #[\ReturnTypeWillChange]
public function count()
{
    return count($this->value);
}

            
getDimension() public メソッド

public integer getDimension ( )
戻り値 integer

要素を選択するために必要なインデックスの数。

                public function getDimension()
{
    return $this->dimension;
}

            
getIterator() public メソッド (バージョン 2.0.14.1 から利用可能)

外部イテレータを取得します。

public Traversable getIterator ( )
戻り値 Traversable

IteratorまたはTraversableを実装するオブジェクトのインスタンス。

スロー yii\base\InvalidConfigException

ArrayExpressionがQueryInterfaceオブジェクトを含む場合。

                #[\ReturnTypeWillChange]
public function getIterator()
{
    $value = $this->getValue();
    if ($value instanceof QueryInterface) {
        throw new InvalidConfigException('The ArrayExpression class can not be iterated when the value is a QueryInterface object');
    }
    if ($value === null) {
        $value = [];
    }
    return new \ArrayIterator($value);
}

            
getType() public メソッド

public string|null getType ( )

                public function getType()
{
    return $this->type;
}

            
getValue() public メソッド

public array|混合|yii\db\QueryInterface getValue ( )

                public function getValue()
{
    return $this->value;
}

            
offsetExists() public メソッド (バージョン 2.0.14 から利用可能)

オフセットが存在するかどうか。

public boolean offsetExists ( $offset )
$offset mixed

チェック対象のオフセット。

戻り値 boolean

成功時はtrue、失敗時はfalse。

ブール値以外が返された場合、ブール値に変換されます。

                #[\ReturnTypeWillChange]
public function offsetExists($offset)
{
    return isset($this->value[$offset]);
}

            
offsetGet() publicメソッド (バージョン2.0.14から利用可能)

取得するオフセット。

public mixed offsetGet ( $offset )
$offset mixed

取得するオフセット。

戻り値 mixed

あらゆる型の値を返す可能性があります。

                #[\ReturnTypeWillChange]
public function offsetGet($offset)
{
    return $this->value[$offset];
}

            
offsetSet() publicメソッド (バージョン2.0.14から利用可能)

設定するオフセット。

public void offsetSet ( $offset, $value )
$offset mixed

値を代入するオフセット。

$value mixed

設定する値。

                #[\ReturnTypeWillChange]
public function offsetSet($offset, $value)
{
    $this->value[$offset] = $value;
}

            
offsetUnset() publicメソッド (バージョン2.0.14から利用可能)

設定解除するオフセット。

public void offsetUnset ( $offset )
$offset mixed

解除するオフセット。

                #[\ReturnTypeWillChange]
public function offsetUnset($offset)
{
    unset($this->value[$offset]);
}