PHPでは、 preg_replace()の$replacementとして\1または$1を使用することの違いは何ですか?
どちらも機能し、まったく同じことをしているように見えますが、ここで何かが欠けていると思います。
PHPでは、 preg_replace()の$replacementとして\1または$1を使用することの違いは何ですか?
どちらも機能し、まったく同じことをしているように見えますが、ここで何かが欠けていると思います。
あなたは何も見逃していません。$nのみを使用できる状況は1つだけです。
後方参照の直後に別の数値が続く置換パターンを使用する場合(つまり、一致したパターンの直後にリテラル番号を配置する場合)、後方参照に使い慣れた\1表記を使用することはできません。たとえば、\ 11はpreg_replace()を混乱させます。これは、\ 1の後方参照の後にリテラル1が続くのか、\11の後方参照の後に何も続くのかがわからないためです。この場合の解決策は、\ ${1}1を使用することです。これにより、分離された$ 1の後方参照が作成され、1はリテラルのままになります。
それを除けば、両者の間に全く違いはありません。