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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top