Php 将回调中的值赋给变量?

Php 将回调中的值赋给变量?,php,Php,我无法将回调中的值分配给变量 下面的示例代码,可以正常工作。它将显示在浏览器上 Service::connect($account)->exec(['something'], function ($line) { echo $line . PHP_EOL; }); 然而,我想为json响应分配一个变量 这不起作用: $outout = null; Service::connect($account)->exec(['something'], function ($line)

我无法将回调中的值分配给变量

下面的示例代码,可以正常工作。它将显示在浏览器上

Service::connect($account)->exec(['something'], function ($line) {
   echo $line . PHP_EOL;
});
然而,我想为json响应分配一个变量

这不起作用:

$outout = null;

Service::connect($account)->exec(['something'], function ($line) use ($outout) {
      $outout = $outout . = $line;
);

echo $outout;
$outout
仍然为空


我做错了什么?

如果您希望它在您的功能范围之外更改,请将
$outout
传递为。您可以通过在函数调用中添加
&
来实现这一点

$outout = '';
Service::connect($account)->exec(['something'], function ($line) use (&$outout) {
      $outout = $outout . = $line;
); 

您需要将其作为引用传递以更改其值。在
Use
语句的变量前面使用
&

$outout = null;

Service::connect($account)->exec(['something'], function ($line) use (&$outout) {
      $outout = $outout . = $line;
);

echo $outout;

是的,那就是从父范围继承变量,而不是相反。请在此处查找可能的副本的参考