从 PHP 5.3.0 开始,当您在 $client->addTask(..., ..., &$results, ...); 中使用 & 时,您将收到一个警告,提示“调用时按引用传递”已弃用。从 PHP 5.4.0 开始,调用时按引用传递被移除,所以使用它将引发致命错误。
这意味着,当您像上面的例子那样使用上下文参数调用 addTask 时
<?php
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
?>
您将收到此“调用时按引用传递”警告(或错误)。这可以通过将上下文变量更改为对象来避免,这样它就会像这样按引用传递
<?php
$results = new \stdClass();
$client->addTask("reverse", "Hello World!", $results, "t1");
?>
为了完整起见,请将完成处理程序更改为期望引用
<?php
function reverse_complete($task, &$results) { ... }
?>
然后在完成处理程序中,您可以使用 $results 对象来保存您的结果,以便在完成处理程序之外访问。