PHP 变量范围:通过引用将参数与默认值传递给匿名函数


PHP Variable scope: Pass parameter by reference with default value to anonymous function?

我正在尝试遍历 mysql 结果并在每条记录上运行匿名函数,但我在变量范围方面遇到了一些问题。该问题是更大流程的一部分,但我在这里创建了一个简化的示例,该示例简单地演示了该问题:

function runLoop($some_mysql_resource){
    $res = 'RESULTS: ';
    sqlEach($some_mysql_resource, function($sql){
        $res .= $sql['id'].',';
    })
    return $res;
);

有没有办法在不改变逻辑流的情况下使上面的 runLoop 函数输出以下内容?

RESULTS: 1,2,3,4,etc...
使用

use$res作为参数"通过引用"传递给您的回调

function runLoop($some_mysql_resource){
    $res = 'RESULTS: ';
    sqlEach($some_mysql_resource, function($sql) use (&$res) {
        $res .= $sql['id'].',';
    })
    return $res;
);

我假设$sql在您的实际代码中的某个地方定义,因此将具有范围