一尘不染

传递给PDOStatement :: bindParam()的参数名称的前导冒号是否可选?

php

将表单的命名参数传递:name给时PDOStatement::bindParam(),无论是否使用前导冒号都似乎有效。

即这:

$statement->bindParam(':name', $var);

或这个:

$statement->bindParam('name', $var);

似乎有效。

这是有关的文档
PDOStatement::bindParam()

参数

参数标识符。对于使用命名占位符的预备语句,这将是 :name 形式的参数 名称。 对于使用问号占位符的准备好的语句,这将是参数的1索引位置。

这是否意味着可以不使用结肠?


阅读 333

收藏
2020-05-26

共1个答案

一尘不染

不可以,因为文档中没有提到这一点,所以我认为可以肯定地认为这种行为不受官方支持,因此不应该被依赖。

但是,它确实确实起作用了(至少在PHP5.3.24中有效)-如果缺少冒号,则会在内部将其添加到参数中

2020-05-26