0

我尝试了各种不同的序列和转义,但没有运气。Preg_replace 忽略$i并使用 the 之后的整数+作为其替换。

第一个例子:

$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

4

1 回答 1

1

您需要括号来对表达式进行分组,以便在连接之前进行加法。

$s = preg_replace( '/\[$/', '${' . ($i + 1) . ':[', $s );
于 2012-08-04T19:23:35.367 回答