2

次のコードを実行する場合:

<?php
    $output = array();
    exec("ping google.com", &$output);
    foreach ($output as $key => $value) {
        echo $value . "<br/>";
    }
?>

非推奨になる:次のように

 Call-time pass-by-reference has been deprecated in C:\xampp\htdocs\my_test\ajax_loop.php on line 3.

助けてください。

4

2 に答える 2

1

&$output参照演算子を実際から削除する必要があります。

次のような関数の構文を提供するチュートリアルはほとんどありません(この例ではexec)。

string exec ( string $command [, array &$output [, int &$return_var ]] ) .

'&'は参照演算子ではなく、出力変数であることを示すだけです。つまり、これらの変数の値には、関数呼び出し後に出力データが入力されることが期待できます。この場合、関数呼び出しの後、$output配列は、実行しようとしているコマンドからの出力のすべての行で埋められます。は$return_var返品ステータスになります。

于 2012-06-11T12:09:51.373 に答える
0

参照演算子を削除するだけで、必要ありません。

...
exec("ping google.com", $output);
...
于 2012-06-11T11:57:41.223 に答える