Maison >développement back-end >tutoriel php >L'omission du signe deux-points dans les paramètres nommés PDOStatement::bindParam() est-elle un comportement pris en charge ?

L'omission du signe deux-points dans les paramètres nommés PDOStatement::bindParam() est-elle un comportement pris en charge ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-10 13:43:02560parcourir

Is Omitting the Leading Colon in PDOStatement::bindParam() Named Parameters a Supported Behavior?

Omission du début du côlon avec les paramètres nommés dans PDOStatement::bindParam()

Dans PDOStatement::bindParam(), il semble que le passage Les paramètres nommés sans deux-points (par exemple, ':name') fonctionnent de la même manière que l'inclusion des deux-points (par exemple, 'nom'). Ce comportement peut sembler déroutant étant donné la documentation, qui indique que « l'identifiant du paramètre » doit inclure les deux points pour les espaces réservés nommés.

Support officiel

La déclaration PDO : La documentation de bindParam() n'indique pas explicitement que les deux points de début sont facultatifs pour les paramètres nommés. Par conséquent, il est prudent de supposer que ce comportement n'est pas officiellement pris en charge et ne doit pas être utilisé dans le code de production.

Mécanisme sous-jacent

Malgré l'absence de documentation officielle, l'omission des deux points en tête semble fonctionner dans les versions PHP telles que 5.3.24 en raison d'un mécanisme interne. Plus précisément, si un deux-points est manquant, il est automatiquement ajouté au paramètre lors de l'exécution de PDOStatement::bindParam(). Ce correctif interne peut être observé dans le code source du PDO (ext/pdo/pdo_stmt.c).

Recommandation

Bien qu'il soit possible d'omettre les deux points de début dans les paramètres nommés dans la version actuelle de PHP, cela n'est pas recommandé. L'absence de support officiel signifie que les futures versions de PHP pourraient ne pas conserver ce comportement, entraînant des erreurs potentielles. Par conséquent, il est toujours préférable d'inclure systématiquement les deux points de début lors de la transmission des paramètres nommés à PDOStatement::bindParam() pour une compatibilité et une fiabilité maximales.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn