Question sur preg_replace en PHP
-
07-07-2019 - |
Question
En PHP, quelle est la différence entre utiliser \ 1 ou $ 1 comme $ remplacement dans preg_replace ()?
Ils travaillent tous les deux et semblent faire exactement la même chose, mais je pense que quelque chose me manque.
La solution
Vous ne manquez rien. Il n’existe qu’une seule situation dans laquelle $ n seul peut être utilisé:
Lorsque vous travaillez avec un modèle de remplacement où une référence arrière est immédiatement suivie d'un autre numéro (c'est-à-dire: placer un nombre littéral immédiatement après un modèle identique), vous ne pouvez pas utiliser la notation \ 1 habituelle pour votre référence arrière. Par exemple, \ 11 confondrait preg_replace () puisqu'il ne sait pas si vous voulez que la référence arrière \ 1 soit suivie d'un 1 littéral ou que la référence arrière \ 11 ne soit suivie de rien. Dans ce cas, la solution consiste à utiliser \ $ {1} 1. Cela crée une backreference $ 1 isolée, en laissant le 1 en tant que littéral.
Hormis cela, il n'y a absolument aucune différence entre les deux.