在 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 语句只是从父作用域继承变量。