PDOStatement::bindParam() パラメーター名のオプションの先頭コロン
PDOStatement::bindParam() の PHP ドキュメントには、パラメーターが次のように記載されています。名前付きプレースホルダーの識別子は、「:name」という形式にする必要があります。ただし、一部のユーザーは、先頭のコロンがオプションであるように見えることを観察しています。
Is the Colon Optional?
ドキュメントによると、いいえ、コロンは使用すべきではありません。省略。オプションのコロンについて明示的に言及していないことは、この動作が公式にサポートされておらず、信頼すべきではないことを示唆しています。
しかし、待ってください...
興味深いことに、PHP 5.3.24 (およびおそらく他のバージョン) では、先頭のコロンを省略しても実際に機能します。これは、パラメータにコロンが存在しない場合、内部的にコロンが追加されるためです。この動作は、ext/pdo/pdo_stmt.c:363 (PHP 5.3.24) のソース コードにあります。
影響
この回避策は現在機能していますが、 、慎重に使用する必要があります。 PHP の将来のバージョンまたは PDO の動作の変更により、この機能が壊れる可能性があります。したがって、ドキュメントに準拠し、PDOStatement::bindParam().
で名前付きプレースホルダーを使用する場合は、常に先頭にコロンを含めることがベスト プラクティスです。以上がPDOStatement::bindParam() パラメータ名の先頭のコロンはオプションですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。