繁体   English   中英

在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]的值确定,我想将其添加到新的text变量中,并通过调用$ step()增加计数。 当然,我可以在代码中一遍又一遍地重复这两行,但是使用匿名函数似乎要简单得多。 唯一的问题是它不起作用。 外部函数中的变量不变。

我究竟做错了什么。 另外,如果有这种方法,还有什么不同的方法呢? 必须有一种方法可以提取整个函数中几行重复的代码。

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

<?php 

$text = 'Some text';

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

$anon();

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM