我尝试了各种不同的序列和逃避,但没有运气。 Preg_replace忽略$i
并在+
替换后使用整数。
第一个例子:
$i = 1;
$s = preg_replace( '/\[$/', '${' . $i + 1 . ':[', $s );
var_dump( $s );
结果:${1:[ // should be 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
答案 0 :(得分:1)
您需要使用括号对表达式进行分组,以便在连接之前进行添加。
$s = preg_replace( '/\[$/', '${' . ($i + 1) . ':[', $s );