PHP bug(使用lambda函数)

Rok*_*alj 0 php lambda

我想我偶然发现了PHP中的一个错误.但是,可以肯定的是,我先问这里.

$k=0;
echo preg_replace_callback('/./', function($groups) use ($k) {
    return $k++;
}, 'xxxxxx');
Run Code Online (Sandbox Code Playgroud)

脚本输出:000000

预期产量:012345

我错过了什么吗?

Nik*_*kiC 8

$k按值而不是通过引用绑定到闭包.因此,在多个闭包调用之间总是相同的.

您也可以通过引用传递它&$k.请注意,这也将修改$k闭包之外的值.