从PHP 5.3.0开始,当您在`$client->addTask(..., ..., &$results, ...);`中使用`&`时,会收到“call-time pass-by-reference”已弃用的警告。从PHP 5.4.0开始,call-time pass-by-reference已被移除,因此使用它将引发致命错误。
这意味着,当您像上面的示例那样,使用上下文参数调用addTask时
<?php
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
?>
您将收到此“call-time pass-by-reference”警告(或错误)。通过将上下文变量更改为对象,可以避免这种情况,并仍然获得功能性代码,如下所示:
<?php
$results = new \stdClass();
$client->addTask("reverse", "Hello World!", $results, "t1");
?>
然后,为了完整性,更改完成处理程序以期望引用。
<?php
function reverse_complete($task, &$results) { ... }
?>
然后在完成处理程序内,您可以使用`$results`对象保存结果,以便在完成处理程序外部访问。