Maison >développement back-end >tutoriel php >Comment PHP gère-t-il les périodes dans les noms de variables de GET, POST et cookies ?
Noms de variables PHP et remplacement de caractères
En PHP, il est courant de transmettre des champs de requête ou des cookies avec un point/point (. ) en leurs noms. Cependant, PHP remplace automatiquement ces points par des traits de soulignement (_). Ce comportement découle de l'utilisation par PHP de points pour la concaténation des noms de variables.
Explication
Selon la documentation PHP, le caractère point (.) n'est pas autorisé dans les noms de variables. Cela peut conduire à un comportement inattendu lors de la concaténation de variables, comme le montre l'exemple de code PHP ci-dessous :
$varname.ext; /* invalid variable name */
Dans l'exemple ci-dessus, PHP interprétera le côté droit (ext) comme une chaîne. Pour éviter cela, PHP remplace les points dans les noms de variables entrants par des traits de soulignement.
Conséquences
Ce comportement de remplacement affecte non seulement les paramètres GET et POST mais également les cookies. Par exemple, si un cookie portant le nom "x.y" est défini, PHP le changera automatiquement en "x_y" dans sa représentation interne.
Solutions
Pendant qu'il n'est pas possible d'empêcher le remplacement point par trait de soulignement de PHP, il existe des solutions de contournement pour récupérer le nom de variable d'origine avec des points. Une solution consiste à utiliser la fonction str_replace() pour remplacer les traits de soulignement par des points après avoir lu les variables, comme suggéré dans le commentaire de Dawnerd.
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!