Pregunta

En PHP, ¿cuál es la diferencia entre usar \ 1 o $ 1 como reemplazo de $ en preg_replace ()?

Ambos funcionan y parecen hacer exactamente lo mismo, pero creo que me falta algo aquí.

¿Fue útil?

Solución

No te estás perdiendo nada. Solo hay una situación en la que solo se puede usar $ n:

  

Cuando se trabaja con un patrón de reemplazo donde una referencia inversa es seguida inmediatamente por otro número (es decir, colocando un número literal inmediatamente después de un patrón coincidente), no puede usar la notación familiar \ 1 para su referencia inversa. \ 11, por ejemplo, confundiría preg_replace () ya que no sabe si desea la referencia inversa \ 1 seguida de un literal 1, o la referencia inversa \ 11 seguida de nada. En este caso, la solución es usar \ $ {1} 1. Esto crea una referencia de $ 1 aislada, dejando el 1 como literal.

Aparte de eso, no hay absolutamente ninguna diferencia entre los dos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top