Является ли ведущий двоеточие для имен параметров передан в PDOStatement:: bindParam() необязательно?

При передаче именованных параметров формы :name в PDOStatement::bindParam(), кажется, работает, используется ли ведущий двоеточие.

то есть. либо это:

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

или это:

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

похоже, работает.

Здесь документация для PDOStatement::bindParam()

параметр

Идентификатор параметра. Для подготовленного заявления с использованием имени заполнители, это будет имя параметра формы: name. Для подготовленного заявления с использованием заполнителей вопросительных знаков, это будет 1-индексированное положение параметра.

Означает ли это, что двоеточие можно остановить?

Ответ 1

Нет, так как в документации не упоминается об этом, я считаю безопасным предположить, что это поведение официально не поддерживается и на него нельзя положиться.

Однако на самом деле это работает (в PHP 5.3.24) - внутренне двоеточие будет добавлено к параметру, если оно отсутствует (см. ext/pdo/pdo_stmt.c:363 в исходном коде PHP 5.3.24).