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 ?>
傳值會很耗時間,特別是對於大型的字串和物件來說,這將會是一個代價很大的操作,傳送引用,函數內的任何操作等同於對傳送變量的操作,傳送大型變數時效率高!
如果您想了解更多相關問題,請造訪php中文網。
以上是php傳值和傳引用的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!