PDOStatement::bindParam() のパラメーター名の先頭のコロンは本当に省略可能ですか?
PDOStatement::bindParam() を使用すると、次のことが可能になります。 :name などのプレースホルダーを使用して、クエリで名前付きパラメーターを指定します。ドキュメントには、名前付きプレースホルダーのパラメーター識別子には :name の形式を使用する必要があると記載されています。ただし、:name と name の両方が問題なく使用できるように見えるという観察結果があります。
ドキュメントとサポートされる機能
PDOStatement::bindParam()ドキュメントには、名前付きパラメータ (:name) にコロン接頭辞を使用することが明示的に記載されています。これは、コロンを使用しないことが正式にサポートされていないことを示しています。
PHP の内部動作
ドキュメントに反して、パラメータ名にコロンが存在しない場合、PHP は内部でパラメータ名にコロンを追加します。この動作は、PHP ソース コード (ext/pdo/pdo_stmt.c:363) で確認できます。これは、コロンのない名前を使用すると、PHP がその名前を自動的に追加することを意味します。
信頼性と推奨事項
この内部動作は便利ですが、次の点に注意することが重要です。公式ドキュメントではサポートされていません。したがって、この動作に依存することはお勧めできません。PDOStatement::bindParam().
を使用するときは、名前付きパラメーターに常にコロン接頭辞を使用することをお勧めします。以上がPDOStatement::bindParam() の先頭のコロンは本当にオプションですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。