鍍金池/ 問答/PHP/ 不懂就問, 為什么像 exec(),preg_match_all() 這類的方法

不懂就問, 為什么像 exec(),preg_match_all() 這類的方法中參數(shù)不用聲明變量就有輸出?

比如:

$str = '123123';
preg_match_all('/(\d*)/', $str, $arr);
var_dump($arr);

或:

exec("date", $output);
var_dump($output);

這樣的沒有聲明 $output,和 $arr 一樣能輸出? 這其中的原因是什么?

補(bǔ)充一下

<?php
var_dump($res);   // 會報錯,變量不存在

//而
function test(&$a){
        $a++;
}

test($a);
echo $a;   // 正常輸出 1% 
回答
編輯回答
撿肥皂

php里變量使用前并不需要聲明,對于傳地址的輸出變量來說,如果不使用初值的話,初始化也是沒有必要的.

參見
http://php.net/manual/en/lang...

2018年2月11日 08:18
編輯回答
脾氣硬

你也可以啊

function fun($a,&$b)
{
    $b = $a;
}
fun(1,$x);
var_dump($x);
2018年1月15日 07:13