$con = 10;
$row = 20;
function numbers(&$con,$row){
// global $con; $con = pow($con,2); $row = pow($row,2);
}
numbers($con,$row);
echo $con;
回複內容:
$con = 10;
$row = 20;
function numbers(&$con,$row){
// global $con; $con = pow($con,2); $row = pow($row,2);
}
numbers($con,$row);
echo $con;
推薦使用引用傳值
。大多數情況下引用的值會在函數調用後很近的代碼裡就會進程處理,變數的範圍控製得非常小;而global
定義的變數範圍幾乎等同於全域變數,稍有不慎就會引起不必要的問題。舉個簡單的例子,你定義一個global
變數的時候,就需要考慮整個系統中是不是還有地方也定義和使用了同名的global
變數。
這也就是為什麼面相對象的編程中都帶有引用傳值,而摒棄全域變數的原因。另外PHP中的對象、資源也是預設採用引用傳遞的。
引用,傳遞的是地址
函數需要在多處使用,適用性不建議用global
對象都是傳引用 數組傳參數如果比較大的話用引用,幾條資料的就無所謂了
從複用性角度來說當然是傳引用好。
這種地方你想怎麼寫就怎麼寫吧。我反正是能不要全域變數就不用全域變數。
如果只能二選一的話,我推薦引用。
使用引用的函數通用性更好。比如有一天你忽然想讓這個函數改變一個局部變數,這時用global的函數就不行了,而用引用的版本依然可以使用。
用類屬性不行嗎
如果有一個值需要頻繁的處理 就聲明為類屬性被,記得 psr-0 裡說一個檔案一個類,所以一個類裡面用屬性就夠用了吧,用的時候$this->就好了,歡迎指正:
con,2); $row = pow($this->row,2); echo $con; } } (new test())->numbers();