php值傳遞和引用傳遞的差別是什麼?

青灯夜游
發布: 2023-02-27 07:10:02
原創
3153 人瀏覽過

php值傳遞和引用傳遞的差別是什麼?

值傳遞:在函數範圍內,改變變數值得大小,都不會影響到函數外邊​​的變數值。

引用傳遞:在函數範圍內,對值的任何改變,在函數外部也有所體現,因為傳引用傳的是記憶體位址。

敲兩段程式碼然後就可以看出兩者的區別,咱們透過現像看本質

function sum($a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//10
登入後複製
function sum(&$a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//11
登入後複製

兩段程式碼的差異在於函數sum的參數上,一個是傳值$ a,另一個是傳引用&$a,結果是傳值過後$a的值最終沒有改變,反之傳引用過後$a的值發生了變化。這裡學過C語言的童鞋就明白是怎麼回事了,壓棧的是引用的複製。

由於引用是指向某個變數的,所以對引用的操作其實就是對他指向的變數的操作。 (作用和傳指標一樣,只是不用解引用) &是指向某個變數位址的符號,函數sum中的形參&$a其實就是實參$a,那麼將其傳進sum中進行了一次運算之後,實參$a的值其實也發生了改變,就是這麼回事。

說明:

按值傳遞中原來參數的值在呼叫其他函數之後還是原來的值,而引用傳遞則是改變了原來的值。依照按值傳遞的做法來傳值時,如果需要原來的值發生改變,則需要在進行程式碼複製,若是值夠大或是一大串字串時,會使程式碼比較多,重複,而引用傳遞則不需要複製PHP程式碼,對提高效能這一個方面有很大的優勢。

更多PHP相關知識,請造訪php中文網

以上是php值傳遞和引用傳遞的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板