php 這裡用&引用傳值好還是global 好? 為什麼

來源:互聯網
上載者:User
關鍵字 php
$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();    
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.