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()。它的值在函式內部發生了改變,但在函式外部沒有反映出來。變數的值在函式外部保持不變。
廣告