在php中使用匿名函数改变外部函数中的多个变量

Using anonymous function in php to change multiple variables in outer function

这是我的匿名函数:

            $step = function() use ($text,$count,$new_text) {                           
            $new_text .= $text[$count];                                             
            $count++;

我正在读取一个长文本值并扫描错误字符。如果 $text[$count] 的值没问题,我想将它添加到新的文本变量中,并通过调用 $step() 来增加计数。当然,我可以在我的代码中一遍又一遍地重复这两行,但是使用匿名函数似乎要简单得多。唯一的问题是它不起作用。外部函数中的变量没有改变。

我做错了什么。或者,如果有的话,有什么不同的方法可以做到这一点?必须有一种方法可以抽象出整个函数中几行重复的代码。

如果想要在执行函数后修改变量版本,则必须通过引用传递,如下所示:

<?php 

$text = 'Some text';

$anon = function() use (&$text) {
    $text .= ' and more...' ;
};

$anon();

print $text; // returns: Some text and more...

use语句只是从父作用域继承变量。