Class yii\db\SqlToken

继承yii\db\SqlToken » yii\base\BaseObject
实现ArrayAccess, yii\base\Configurable
可用自版本2.0.13
源代码 https://github.com/yiisoft/yii2/blob/master/framework/db/SqlToken.php

SqlToken 表示由 yii\db\SqlTokenizer 或其子类生成的 SQL 令牌(token).

公共属性

隐藏继承的属性

属性类型描述定义在
$children yii\db\SqlToken[] 子令牌(token). yii\db\SqlToken
$content string|null 令牌(token)内容. yii\db\SqlToken
$endOffset integer 原始 SQL 令牌(token)的结束位置. yii\db\SqlToken
$hasChildren boolean 令牌(token)是否有子令牌(token). 该属性是只读的. yii\db\SqlToken
$isCollection boolean 令牌(token)是否代表一组令牌(token). 该属性是只读的. yii\db\SqlToken
$parent yii\db\SqlToken 父令牌(token). yii\db\SqlToken
$sql string SQL 代码. 该属性是只读的. yii\db\SqlToken
$startOffset integer 原始 SQL 令牌(token)的起始位置. yii\db\SqlToken
$type integer 令牌(token)类型. yii\db\SqlToken

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__toString() 返回表示令牌(token)的 SQL 代码. yii\db\SqlToken
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
getChildren() 返回子令牌(token)列表. yii\db\SqlToken
getHasChildren() 返回令牌(token)是否表示令牌(token)集合, 并且子代的数量不为零. yii\db\SqlToken
getIsCollection() 返回令牌(token)是否表示令牌(token)的集合. yii\db\SqlToken
getSql() 返回表示令牌(token)的 SQL 代码. yii\db\SqlToken
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject
matches() 返回此令牌(token)(包括其子令牌(token))是否与指定的模式("pattern") SQL 代码匹配. yii\db\SqlToken
offsetExists() 返回指定偏移量处是否有子令牌(token). yii\db\SqlToken
offsetGet() 返回指定偏移量处的子令牌(token). yii\db\SqlToken
offsetSet() 将子令牌(token)添加到令牌(token)中. yii\db\SqlToken
offsetUnset() 删除指定偏移量的子令牌(token). yii\db\SqlToken
setChildren() 设置子令牌(token)的列表. yii\db\SqlToken

常量

隐藏继承的常量

常量描述定义在
TYPE_CODE 0 yii\db\SqlToken
TYPE_IDENTIFIER 6 yii\db\SqlToken
TYPE_KEYWORD 4 yii\db\SqlToken
TYPE_OPERATOR 5 yii\db\SqlToken
TYPE_PARENTHESIS 3 yii\db\SqlToken
TYPE_STATEMENT 1 yii\db\SqlToken
TYPE_STRING_LITERAL 7 yii\db\SqlToken
TYPE_TOKEN 2 yii\db\SqlToken

属性详情

$children public 属性

子令牌(token).

public yii\db\SqlToken[] $children null
$content public 属性

令牌(token)内容.

public string|null $content null
$endOffset public 属性

原始 SQL 令牌(token)的结束位置.

public integer $endOffset null
$hasChildren public 属性

令牌(token)是否有子令牌(token). 该属性是只读的.

public boolean $hasChildren null
$isCollection public 属性

令牌(token)是否代表一组令牌(token). 该属性是只读的.

public boolean $isCollection null
$parent public 属性

父令牌(token).

public yii\db\SqlToken $parent null
$sql public 属性

SQL 代码. 该属性是只读的.

public string $sql null
$startOffset public 属性

原始 SQL 令牌(token)的起始位置.

public integer $startOffset null
$type public 属性
public integer $type self::TYPE_TOKEN

方法详情

__toString() public 方法

返回表示令牌(token)的 SQL 代码.

public string __toString ( )
return string

SQL 代码.

getChildren() public 方法

返回子令牌(token)列表.

public yii\db\SqlToken[] getChildren ( )
return yii\db\SqlToken[]

子令牌(token)列表.

getHasChildren() public 方法

返回令牌(token)是否表示令牌(token)集合, 并且子代的数量不为零.

public boolean getHasChildren ( )
return boolean

令牌(token)是否有子代.

getIsCollection() public 方法

返回令牌(token)是否表示令牌(token)的集合.

public boolean getIsCollection ( )
return boolean

令牌(token)是否代表令牌(token)的集合.

getSql() public 方法

返回表示令牌(token)的 SQL 代码.

public string getSql ( )
return string

SQL 代码.

matches() public 方法

返回此令牌(token)(包括其子令牌(token))是否与指定的模式("pattern") SQL 代码匹配.

用法示例:

$patternToken = (new \yii\db\sqlite\SqlTokenizer('SELECT any FROM any'))->tokenize();
if ($sqlToken->matches($patternToken, 0, $firstMatchIndex, $lastMatchIndex)) {
    // ...
}
public boolean matches ( yii\db\SqlToken $patternToken, $offset 0, &$firstMatchIndex null, &$lastMatchIndex null )
$patternToken yii\db\SqlToken

要匹配的标记化 SQL 代码. 除了普通的 SQL 之外, 还支持any关键字, 它将匹配任意数学的关键字, 标识符和空格.

$offset integer

令牌(token)的子偏移以开始查找.

$firstMatchIndex integer|null

令牌(token)的子代从成功匹配开始的地方偏移.

$lastMatchIndex integer|null

令牌(token)的子代在成功匹配结束的地方偏移.

return boolean

该令牌(token)是否与模式 SQL 代码匹配.

offsetExists() public 方法

返回指定偏移量处是否有子令牌(token).

SPL ArrayAccess 接口需要此方法. 当你使用类似isset($token[$offset])时, 它被隐式调用.

public boolean offsetExists ( $offset )
$offset integer

子令牌(token)偏移量.

return boolean

令牌(token)是否存在.

offsetGet() public 方法

返回指定偏移量处的子令牌(token).

SPL ArrayAccess 接口需要此方法. 当你使用类似$child = $token[$offset];时, 它被隐式调用.

public yii\db\SqlToken|null offsetGet ( $offset )
$offset integer

子令牌(token)偏移量..

return yii\db\SqlToken|null

指定偏移量处的子令牌(token); 如果没有令牌(token), 则为null.

offsetSet() public 方法

将子令牌(token)添加到令牌(token)中.

SPL ArrayAccess 接口需要此方法. 当你使用类似$token[$offset] = $child;时, 它被隐式调用.

public void offsetSet ( $offset, $token )
$offset integer|null

子令牌(token)偏移量..

$token yii\db\SqlToken

被添加的令牌(token).

offsetUnset() public 方法

删除指定偏移量的子令牌(token).

SPL ArrayAccess 接口需要此方法. 当你使用类似unset($token[$offset])时, 它被隐式调用.

public void offsetUnset ( $offset )
$offset integer

子令牌(token)偏移量..

setChildren() public 方法

设置子令牌(token)的列表.

public void setChildren ( $children )
$children yii\db\SqlToken[]

子令牌(token)列表.