上一篇文章中我們了解了向函數(shù)傳遞參數(shù)中的按值傳遞,有需要的請看《php函數(shù)之如何按值傳遞參數(shù)?》。這次我們向大家介紹向函數(shù)傳遞參數(shù)中的引用傳遞,有需要的可以參考參考。
我們首先來看一個小例子,便于我們理解引用傳遞。
<?php function swap(&$a, &$b){ echo '函數(shù)內(nèi),交換前 $a = '.$a.', $b = '.$b.'<br>'; $temp = $a; $a = $b; $b = $temp; echo '函數(shù)內(nèi),交換后 $a = '.$a.', $b = '.$b.'<br>'; } $x = 5; $y = 7; echo '函數(shù)外,交換前 $x = '.$x.', $y = '.$y.'<br>'; swap($x, $y); echo '函數(shù)外,交換后 $x = '.$x.', $y = '.$y; ?>
輸出結(jié)果是
函數(shù)外,交換前 $x = 5, $y = 7 函數(shù)內(nèi),交換前 $a = 5, $b = 7 函數(shù)內(nèi),交換后 $a = 7, $b = 5 函數(shù)外,交換后 $x = 7, $y = 5
在這個例子中,我們可以看到在函數(shù)內(nèi)部,值確實是交換的,而在函數(shù)外部,值也交換了。
這就是引用傳遞與上一篇文章的按值傳遞參數(shù)的區(qū)別。
參數(shù)引用傳遞是復(fù)制參數(shù)的內(nèi)存地址,然后將其傳遞給函數(shù)的形式參數(shù)。參數(shù)和形式參數(shù)都指向相同的內(nèi)存地址。因此,函數(shù)對形式參數(shù)的操作將影響函數(shù)外部的參數(shù)。
通過引用傳遞是將參數(shù)的內(nèi)存地址傳遞給函數(shù)的形式參數(shù)。因此,參數(shù)和形式參數(shù)指向相同的內(nèi)存地址。此時,函數(shù)內(nèi)的所有操作都會影響函數(shù)外參數(shù)的值。參考轉(zhuǎn)移的方法是添加一個&
符號,如下所示:
function name (&參數(shù)1, &參數(shù)2, ..., &參數(shù)3) { ... }
同時這個符號也是引用傳遞
與按值傳遞參數(shù)
的區(qū)別。
引用傳遞就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程