PQL 中的变量

与其他语言不同,PQL 中的变量除了可以进行运算之外,还可以和 SQL 语句写在一起,作为其他语句的一部分,解释器会在执行时替换成其对应的值并自动判断数据类型。

用户变量必须以美元$字符开头,变量名称只能由字母、数字和下划线组成。变量名不区分大小写($user$User是同一个变量),但仍建议英文字母建议全部小写,多个英文单词之间使用下划线_隔开。 声明变量不需要也不能指定类型,解释器会自动推断。PQL 中没有“不可变常量”的概念,所有变量的值均可更新。

变量运算

变量除了可以嵌入到语句中之外,也可以进行各种运算。

变量作用域

变量有自己的作用域和生命周期。如下示例:

上面例子中:变量$d的作用域为整个 PQL 过程; 变量$i和变量$x的作用域在FOR循环中; 变量$y的作用域仅在IF语句块内,更确切点是在THENELSE之间; 变量$z的作用域在ELSEEND IF中间。同样的,函数参数和在函数体内声明的变量作用域也仅在函数内。

用户变量的作用域最大范围是整个 PQL 过程,如果想使用跨脚本的变量,请参照全局变量

变量的状态

PQL 使用几个关键词来表示变量的状态,可用于条件判断,使用时不区分大小写。

数据类型的判断见条件表达式

将变量嵌入到语句中

变量可以嵌入到语句当中,如本页第一个例子,解释器会自动判断类型。如果碰到变量名与语句冲突不能正确识别时,可以在变量名上加上小括号; 如果是字符串变量,在解析时会自动添加引号,如果不想让解释器自动添加引号,可以变量末尾加叹号!

上例中,如果变量$group引用时不加小括号,就会识别为$group_scores; 如果变量$table在引用时不加叹号,则会把语句解析为SELECT * FROM 'students_scores' WHERE score>=60,执行时会出现语法错误。如果嵌入到语句中的变量未声明或书写错误,会被恢复为UNDEFINED,很可能会造成语句出错。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!