クラス yii\db\Expression
| 継承 | yii\db\Expression » yii\base\BaseObject |
|---|---|
| 実装 | yii\base\Configurable, yii\db\ExpressionInterface |
| 利用可能なバージョン | 2.0 |
| ソースコード | https://github.com/yiisoft/yii2/blob/master/framework/db/Expression.php |
Expression は、エスケープやクォートを必要としない DB 式を表します。
Expression オブジェクトが SQL ステートメントまたはフラグメント内に埋め込まれている場合、DB のエスケープやクォートなしに、$expression プロパティ値に置き換えられます。たとえば、
$expression = new Expression('NOW()');
$now = (new \yii\db\Query)->select($expression)->scalar(); // SELECT NOW();
echo $now; // prints the current date
Expression オブジェクトは、主に生の SQL 式を yii\db\Query, yii\db\ActiveQuery、および関連クラスのメソッドに渡すために作成されます。
式は、$params を介して指定されたパラメータとバインドすることもできます。
公開プロパティ
| プロパティ | 型 | 説明 | 定義元 |
|---|---|---|---|
| $expression | string | DB 式 | yii\db\Expression |
| $params | array | この式のバインドに使用する必要があるパラメータのリスト。 | yii\db\Expression |
公開メソッド
| メソッド | 説明 | 定義元 |
|---|---|---|
| __call() | クラスメソッドではない名前付きメソッドを呼び出します。 | yii\base\BaseObject |
| __construct() | コンストラクタ。 | yii\db\Expression |
| __get() | オブジェクトプロパティの値を返します。 | yii\base\BaseObject |
| __isset() | プロパティが設定されているか、つまり定義されていて null でないかを確認します。 | yii\base\BaseObject |
| __set() | オブジェクトプロパティの値を設定します。 | yii\base\BaseObject |
| __toString() | 文字列マジックメソッド。 | yii\db\Expression |
| __unset() | オブジェクトプロパティを null に設定します。 | yii\base\BaseObject |
| canGetProperty() | プロパティが読み取り可能かどうかを示す値を返します。 | yii\base\BaseObject |
| canSetProperty() | プロパティが設定可能かどうかを示す値を返します。 | yii\base\BaseObject |
| className() | このクラスの完全修飾名を返します。 | yii\base\BaseObject |
| hasMethod() | メソッドが定義されているかどうかを示す値を返します。 | yii\base\BaseObject |
| hasProperty() | プロパティが定義されているかどうかを示す値を返します。 | yii\base\BaseObject |
| init() | オブジェクトを初期化します。 | yii\base\BaseObject |
プロパティの詳細
この式のバインドに使用する必要があるパラメータのリスト。キーは $expression に現れるプレースホルダーで、値は対応するパラメータ値です。
メソッドの詳細
定義元: yii\base\BaseObject::__call()
クラスメソッドではない名前付きメソッドを呼び出します。
このメソッドは、不明なメソッドが呼び出されたときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。
| public mixed __call ( $name, $params ) | ||
| $name | string |
メソッド名 |
| $params | array |
メソッドのパラメータ |
| return | mixed |
メソッドの戻り値 |
|---|---|---|
| throws | yii\base\UnknownMethodException |
不明なメソッドを呼び出した場合 |
public function __call($name, $params)
{
throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}
コンストラクタ。
| public void __construct ( $expression, $params = [], $config = [] ) | ||
| $expression | string |
DB 式 |
| $params | array |
パラメータ |
| $config | array |
オブジェクトのプロパティを初期化するために使用される名前と値のペア |
public function __construct($expression, $params = [], $config = [])
{
$this->expression = $expression;
$this->params = $params;
parent::__construct($config);
}
定義元: yii\base\BaseObject::__get()
オブジェクトプロパティの値を返します。
このメソッドは、$value = $object->property; を実行するときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。
参考: __set()。
| public mixed __get ( $name ) | ||
| $name | string |
プロパティ名 |
| return | mixed |
プロパティの値 |
|---|---|---|
| throws | yii\base\UnknownPropertyException |
プロパティが定義されていない場合 |
| throws | yii\base\InvalidCallException |
プロパティが書き込み専用の場合 |
public function __get($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter();
} elseif (method_exists($this, 'set' . $name)) {
throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}
定義元: yii\base\BaseObject::__isset()
プロパティが設定されているか、つまり定義されていて null でないかを確認します。
このメソッドは、isset($object->property) を実行するときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。
プロパティが定義されていない場合、false が返されることに注意してください。
| public boolean __isset ( $name ) | ||
| $name | string |
プロパティ名またはイベント名 |
| return | boolean |
指定された名前のプロパティが設定されているか(nullではないか)。 |
|---|---|---|
public function __isset($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter() !== null;
}
return false;
}
定義元: yii\base\BaseObject::__set()
オブジェクトプロパティの値を設定します。
このメソッドは、$object->property = $value; を実行するときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。
参考: __get()。
| public void __set ( $name, $value ) | ||
| $name | string |
プロパティ名またはイベント名 |
| $value | mixed |
プロパティの値 |
| throws | yii\base\UnknownPropertyException |
プロパティが定義されていない場合 |
|---|---|---|
| throws | yii\base\InvalidCallException |
プロパティが読み取り専用の場合 |
public function __set($name, $value)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->$setter($value);
} elseif (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
} else {
throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}
}
文字列マジックメソッド。
| public string __toString ( ) | ||
| return | string |
DB式。 |
|---|---|---|
public function __toString()
{
return $this->expression;
}
定義元: yii\base\BaseObject::__unset()
オブジェクトプロパティを null に設定します。
このメソッドは、unset($object->property) を実行するときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。
プロパティが定義されていない場合、このメソッドは何も行わないことに注意してください。プロパティが読み取り専用の場合、例外がスローされます。
| public void __unset ( $name ) | ||
| $name | string |
プロパティ名 |
| throws | yii\base\InvalidCallException |
プロパティが読み取り専用の場合。 |
|---|---|---|
public function __unset($name)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->$setter(null);
} elseif (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
}
}
定義元: yii\base\BaseObject::canGetProperty()
プロパティが読み取り可能かどうかを示す値を返します。
プロパティが読み取り可能である条件は以下のとおりです。
- クラスが指定された名前に関連付けられたゲッターメソッドを持っている(この場合、プロパティ名は大文字と小文字を区別しません)。
- クラスが指定された名前のメンバ変数を持っている(
$checkVarsが true の場合)。
参考: canSetProperty()。
| public boolean canGetProperty ( $name, $checkVars = true ) | ||
| $name | string |
プロパティ名 |
| $checkVars | boolean |
メンバ変数をプロパティとして扱うかどうか |
| return | boolean |
プロパティが読み取り可能かどうか |
|---|---|---|
public function canGetProperty($name, $checkVars = true)
{
return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}
定義元: yii\base\BaseObject::canSetProperty()
プロパティが設定可能かどうかを示す値を返します。
プロパティが書き込み可能である条件は以下のとおりです。
- クラスが指定された名前に関連付けられたセッターメソッドを持っている(この場合、プロパティ名は大文字と小文字を区別しません)。
- クラスが指定された名前のメンバ変数を持っている(
$checkVarsが true の場合)。
参考: canGetProperty()。
| public boolean canSetProperty ( $name, $checkVars = true ) | ||
| $name | string |
プロパティ名 |
| $checkVars | boolean |
メンバ変数をプロパティとして扱うかどうか |
| return | boolean |
プロパティが書き込み可能かどうか |
|---|---|---|
public function canSetProperty($name, $checkVars = true)
{
return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}
::class を使用してください。
定義元: yii\base\BaseObject::className()
このクラスの完全修飾名を返します。
| public static string className ( ) | ||
| return | string |
このクラスの完全修飾名。 |
|---|---|---|
public static function className()
{
return get_called_class();
}
定義元: yii\base\BaseObject::hasMethod()
メソッドが定義されているかどうかを示す値を返します。
デフォルトの実装は、PHP関数 method_exists() の呼び出しです。PHPのマジックメソッド __call() を実装した場合、このメソッドをオーバーライドできます。
| public boolean hasMethod ( $name ) | ||
| $name | string |
メソッド名 |
| return | boolean |
メソッドが定義されているかどうか |
|---|---|---|
public function hasMethod($name)
{
return method_exists($this, $name);
}
定義元: yii\base\BaseObject::hasProperty()
プロパティが定義されているかどうかを示す値を返します。
プロパティは、以下の場合に定義されます。
- クラスが、指定された名前に関連付けられたゲッターまたはセッターメソッドを持っている場合 (この場合、プロパティ名はケースインセンシティブです)。
- クラスが指定された名前のメンバ変数を持っている(
$checkVarsが true の場合)。
こちらも参照
| public boolean hasProperty ( $name, $checkVars = true ) | ||
| $name | string |
プロパティ名 |
| $checkVars | boolean |
メンバ変数をプロパティとして扱うかどうか |
| return | boolean |
プロパティが定義されているかどうか |
|---|---|---|
public function hasProperty($name, $checkVars = true)
{
return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}
| public void init ( ) |
public function init()
{
}
サインアップ または ログインしてコメントしてください。