将表单的命名参数传递:name给时PDOStatement::bindParam(),无论是否使用前导冒号都似乎有效。
:name
PDOStatement::bindParam()
即这:
$statement->bindParam(':name', $var);
或这个:
$statement->bindParam('name', $var);
似乎有效。
这是有关的文档 PDOStatement::bindParam()
参数 参数标识符。对于使用命名占位符的预备语句,这将是 :name 形式的参数 名称。 对于使用问号占位符的准备好的语句,这将是参数的1索引位置。
参数
参数标识符。对于使用命名占位符的预备语句,这将是 :name 形式的参数 名称。 对于使用问号占位符的准备好的语句,这将是参数的1索引位置。
这是否意味着可以不使用结肠?
不可以,因为文档中没有提到这一点,所以我认为可以肯定地认为这种行为不受官方支持,因此不应该被依赖。
但是,它确实确实起作用了(至少在PHP5.3.24中有效)-如果缺少冒号,则会在内部将其添加到参数中