【发布时间】:2015-07-05 16:52:38
【问题描述】:
我有一个看起来像这样的函数...
function filterwords($input='poo poo hello world bum trump'){
$report_swear = 0;
$badwords = array('poo','bum','trump');
$filterCount = sizeof($badwords);
for($i=0; $i<$filterCount; $i++){
$input = preg_replace_callback('/\b'.preg_quote($badwords[$i]).'\b/i', function($matches) use ($report_swear) {
$report_swear++;
return str_repeat('*', 4);
}, $input);
}
print_r($report_swear);
return $input;
}
在本例中,我希望 $report_swear 变量返回 4,但它仍然返回 0。
知道如何在回调中更改它吗?
谢谢
【问题讨论】:
-
您需要通过引用传递您的变量以将其更改为超出回调函数的范围。
-
听起来像是一个计划,但我该怎么做呢?