あらゆる種類のシーケンスとエスケープを試しましたが、うまくいきませんでした。Preg_replace は を無視し、$i
の後の整数+
をその置換として使用しています。
最初の例:
$i = 1;
$s = preg_replace( '/\[$/', '${' . $i + 1 . ':[', $s );
var_dump( $s );
結果:${1:[ // should be 2
2 番目の例:
$i = 1;
$s = preg_replace( '/\[$/', '${' . $i + 9 . ':[', $s );
var_dump( $s );
結果:${9:[ // should be 10
追加しなくても問題なく動作します:
$i = 12;
$s = preg_replace( '/\[$/', '${' . $i . ':[', $s );
var_dump( $s );
結果:${12:[ // okay