Pergunta

No PHP o que é a diferença entre usar \ 1 ou US $ 1 quanto $ substituição em preg_replace ()?

Ambos trabalham e parecem fazer exatamente a mesma coisa, mas eu acho que eu estou faltando alguma coisa aqui.

Foi útil?

Solução

Você não está faltando alguma coisa. Há apenas uma situação onde $ n só pode ser usado:

Ao trabalhar com um padrão de substituição onde uma referência anterior é imediatamente seguido por outro número (ou seja .: colocando um número literal imediatamente após um padrão combinado), você não pode usar o familiar notação \ 1 para o seu backreference. \ 11, por exemplo, iria confundir preg_replace (), uma vez que não sabe se deseja que o \ 1 backreference seguido por um literal 1, ou o backreference \ 11 seguido por nada. Neste caso, a solução é usar \ $ {1} 1. Isso cria um isolado $ 1 backreference, deixando a 1 como um literal.

Além disso, não há absolutamente nenhuma diferença entre os dois.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top