PHP中的傳值和傳址是什麼?


在這篇文章中,我們將學習PHP中的傳值和傳址。

現在,讓我們詳細瞭解這兩個概念。

在PHP中,我們通常採用傳值的方式將引數傳遞給函式。我們之所以採用這種方式,是因為如果函式內部改變了引數的值,函式外部的值不會發生改變。

但在某些情況下,我們可能需要修改函式引數。為了允許函式修改其引數,必須透過引用傳遞這些引數。

讓我們從傳址開始。正如前面提到的,我們可以將變數透過引用傳遞給函式,以便函式可以修改該變數。要開始透過引用傳遞引數的過程,請在函式定義中在引數名前新增一個取地址符 (&)。

示例

讓我們用一個簡單的例子來測試一下。

<?php
   function calculate(&$a){
      $a++;
   }
   $a=5;
   calculate($a);
   echo $a;
?>

輸出

6

解釋

這裡我們聲明瞭變數 $a 並將其作為引用傳遞給函式 calculate()。根據原理,如果 $a 的值在函式內部發生改變,那麼它在函式外部也會發生改變。

注意

在函式呼叫中沒有引用符號 - 只有在函式定義中才有。僅函式定義就足以正確地透過引用傳遞引數。在 PHP 5.4 版本中,如果您使用 calculate(&$a); ,則會報錯。這是已棄用的用法。

示例

讓我們測試一個例子來理解傳值。

<?php
   function calculate($a){
      $a++;
   echo $a."<br/>";
   }
   $a=5;
   calculate($a);
   echo $a;
?>

輸出

6
5

解釋

這裡我們將值作為傳值傳遞給函式 calculate()。它的值在函式內部發生了改變,但在函式外部沒有反映出來。變數的值在函式外部保持不變。

更新於:2020年6月29日

5K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告