PHP的傳值與引用,php 傳值與傳引用的區別詳解

2021-10-25 20:38:09 字數 938 閱讀 2128

在php中傳值與傳引用對於我們來講是有比較大的區別的乙個引用可以呼叫記憶體位址賦值了,這樣只要記憶體位址中內容變化而賦值的變數也就變化了,付值只是把記憶體中值給其它變數而己。

傳值:函式引數壓棧的是引數的副本。

任何的修改是在副本上作用,沒有作用在原來的變數上。

傳引用:

壓棧的是引用的副本。由於引用是指向某個變數的,對引用的操作其實就是對他指向的變數的操作。(作用和傳指標一樣,只是引用少了解指標的草紙)

例子**如下

複製**

function func1($a)

function func2(&$a)

$sample = 1;

func1($sample);

echo $sample; // 輸出 1

$sample = 1;

func2($sample);

echo $sample; // 輸出 2

例子**如下

複製**

$num1 = 15;

$num2 = &$num1;

$num2 = 20;

echo $num1;//輸出20

再比如:

**如下

複製**

function func1($a) {

$a = $a 1;

function func2(&$a) {

$a = $a 1;

$sample = 1;

func1($sample);

echo $sample; // 輸出 1

$sample = 1;

func2($sample);

echo $sample; // 輸出 2

總結一下

傳值的話,如果是非物件,會傳乙個值的拷貝,對這個變數做任何改動都不影響原值。傳引用或者傳物件,是傳真實的記憶體位址,對這個變數做的改動會影響原值。

PHP的傳值與引用,php傳值和傳引用區別

php傳值 在函式範圍內,改變變數值得大小,都不不會影響到函式外邊的變數值。testa 1 定義變數a testb 2 定義變數b testb testa 變數a賦值給變數b echo testb 顯示為1 傳引用 類似於c語言的指標了,感覺差不多。打個比方,我有一橦房子,我給你一把鑰匙,我們二個都...

php中傳值與傳引用的區別

1,傳值 param1 1 定義變數1 param2 2 定義變數2 param2 param1 變數1賦值給變數2 echo param2 顯示為1 2,傳引用 param2 1 定義變數2 param1 param2 將變數2的引用傳給變數1 echo param2 顯示為1 param1 2 ...

php引用傳值

from php的引用 就是在變數或者函式 物件等前面加上 符號 在php 中引用的意思是 不同的名字訪問同乙個變數內容.與 語言中的指標是有差別的 語言中的指標裡面儲存的是變數的內容在記憶體中存放的位址 變數的引用 php 的引用允許你用兩個變數來指向同乙個內容 a abc b a echo a ...