php傳值和傳參照的區別是什麼

2020-07-16 10:06:25

php傳值和傳參照的區別是:對於傳值,在函數範圍內改變變數值的大小,不會影響到函數外邊的變數值;對於傳參照,在函數範圍內,對值的任何改變在函數外部都有所體現,傳參照傳的是記憶體地址。

區別分析:

php傳值:如果在函數範圍內改變變數值的大小,那麼並不會影響到函數外邊的變數值。

PHP傳參照:在函數範圍內,對值的任何改變在函數外部都有所體現,因為傳參照傳的是記憶體地址。

舉例分析:

傳值:

和copy是一樣的。打個比方,我有一橦房子,我給你建築材料,你建了一個根我的房子一模一樣的房子,你在你的房子做什麼事都不會影響到我,我在我的房子裡做什麼事也不會影響到你,彼此獨立。

<?php  
$testa=1;
//定義變數a 
$testb=2;
//定義變數b  
$testb = $testa;
//變數a賦值給變數b  
echo $testb;
//顯示為1  
?>

傳參照:

類似於C語言的指標了,感覺差不多。打個比方,我有一橦房子,我給你一把鑰匙,我們二個都可以進入這個房子,你在房子做什麼都會影響到我。

<?php
$param2=1;        //定義變數2
$param1 = &$param2;   //將變數2的參照傳給變數1
echo $param2;      //顯示為1
$param1 = 2;       //把2賦值給變數1
echo $param2;      //顯示為2
?>

傳值會很耗時間,特別是對於大型的字串和物件來說,這將會是一個代價很大的操作,傳送參照,函數內的任何操作等同於對傳送變數的操作,傳送大型變數時效率高!

如果您想了解更多相關問題,請存取TW511.COM

以上就是php傳值和傳參照的區別是什麼的詳細內容,更多請關注TW511.COM其它相關文章!