在preg_replace_callback-PHP中使用局部变量
如何在PHP中的preg_replace_回调中使用局部变量。 我有以下代码:在preg_replace_callback-PHP中使用局部变量,php,preg-replace-callback,Php,Preg Replace Callback,如何在PHP中的preg_replace_回调中使用局部变量。 我有以下代码: function pregRep($matches) { global $i; $i++; if($i > 2) { return '#'.$matches[0]; } else { return $matches[0]; } } $i = 0; $str = preg_replace_callback(
function pregRep($matches)
{
global $i; $i++;
if($i > 2)
{
return '#'.$matches[0];
}
else
{
return $matches[0];
}
}
$i = 0;
$str = preg_replace_callback($reg_exp,"pregRep",$str);
$str也是字符串,$reg_exp是正则表达式。这两者都有很好的定义
感谢您的帮助。最简单的方法是匿名回拨:
$str = preg_replace_callback($regExp,function($match) use ($some_local_variable) {
// do something
},$str);
请注意,您可以通过这种方式添加多个变量,但它会在定义函数时创建该变量的副本。如果要将该变量分配给多个用途的变量,这一点很重要。如果需要对变量的实时引用,请使用&$some\u var
当然,这需要PHP 5.3或更高版本。最简单的方法是使用匿名回调:
$str = preg_replace_callback($regExp,function($match) use ($some_local_variable) {
// do something
},$str);
请注意,您可以通过这种方式添加多个变量,但它会在定义函数时创建该变量的副本。如果要将该变量分配给多个用途的变量,这一点很重要。如果需要对变量的实时引用,请使用&$some\u var
当然,这需要PHP5.3或更高版本。全局关键字的使用通常是a。全局关键字的使用通常是a。