從 PHP 5.3.0 開始,當您在 $client->addTask(..., ..., &$results, ...); 中使用 & 時,您會收到一個警告,指出「呼叫時傳遞參考」已被棄用。而從 PHP 5.4.0 開始,呼叫時傳遞參考已被移除,因此使用它會引發致命錯誤。
這表示當您像上面範例一樣使用 context 參數呼叫 addTask 時:
<?php
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
?>
您會收到這個「呼叫時傳遞參考」警告(或錯誤)。可以透過將 context 變數更改為物件,使其以參考方式傳遞,來避免這個問題,同時仍然保持程式碼的功能,如下所示:
<?php
$results = new \stdClass();
$client->addTask("reverse", "Hello World!", $results, "t1");
?>
為了完整性,請將 complete handler 修改為預期接收一個參考。
<?php
function reverse_complete($task, &$results) { ... }
?>
然後,在 complete handler 內部,您可以使用 $results 物件來儲存您的結果,以便在 complete handler 外部存取。