不推荐使用:调用exec()函数时,不推荐使用call-time pass-by-reference

时间:2012-06-11 11:53:34

标签: php

运行以下代码时:

<?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.

请帮忙。

2 个答案:

答案 0 :(得分:1)

您确实需要从&$output删除引用运算符。

很少有教程提供如下函数的语法(本例中为exec)。

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

'&amp;'它不是引用运算符,它只表示它们是输出变量,这意味着您可以期望在函数调用之后使用输出数据填充这些变量的值。 在这种情况下在函数调用之后,$output数组将填充您尝试执行的commnad的所有输出行。 $return_var将具有返回状态。

答案 1 :(得分:0)

只需删除引用运算符,就不需要它:

...
exec("ping google.com", $output);
...