PDOStatement::bindParam() 参数名称中的可选前导冒号
PDOStatement::bindParam() 的 PHP 文档声明该参数命名占位符的标识符应采用“:name”形式。然而,一些用户发现前导冒号似乎是可选的。
冒号是可选的吗?
根据文档,不,冒号不应该是省略。没有明确提及可选冒号表明此行为不受官方支持,不应依赖。
但是等等,它有效...
有趣的是,在 PHP 5.3.24(可能还有其他版本)中,省略前导冒号确实有效。这是因为在内部,如果参数丢失,则会将冒号添加到参数中。此行为可在 ext/pdo/pdo_stmt.c:363(PHP 5.3.24 中)的源代码中找到。
影响
虽然此解决方法当前有效,应谨慎使用。 PHP 的未来版本或 PDO 行为的更改可能会破坏此功能。因此,最佳实践是遵守文档并在将命名占位符与 PDOStatement::bindParam() 一起使用时始终包含前导冒号。
以上是PDOStatement::bindParam() 参数名称中的前导冒号是可选的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!