上一篇文章中我們了解了什么是參數(shù),如何去創(chuàng)建一個(gè)函數(shù)學(xué)習(xí)了形式參數(shù)和實(shí)際參數(shù),有需要的請(qǐng)看《php函數(shù)之形式參數(shù)與實(shí)際參數(shù)是什么意思?》。這次我們深入了解一下參數(shù),介紹向函數(shù)傳遞參數(shù)中的按值傳遞。
向函數(shù)傳遞參數(shù)的方式有四種,分別是值傳遞、引用傳遞、默認(rèn)參數(shù)和可變長(zhǎng)度參數(shù)。今天我們就來(lái)介紹一下如何進(jìn)行按值傳參。
我們首先來(lái)看一個(gè)小例子。
<?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 = 5, $y = 7
在這例子中,我們可以看到在函數(shù)內(nèi)部,值確實(shí)是交換的,而在函數(shù)外部,值不會(huì)改變。
通過(guò)這個(gè)小例子。我們也大致了解了按值傳遞參數(shù),下面我就來(lái)詳細(xì)介紹一下。
按值傳遞是PHP中函數(shù)的默認(rèn)值傳遞方法,也稱(chēng)為“復(fù)制值傳遞
”。顧名思義,值轉(zhuǎn)移方法將復(fù)制參數(shù)的值,然后將其轉(zhuǎn)移到函數(shù)的形式參數(shù)。因此,在函數(shù)中操作參數(shù)的值不會(huì)影響函數(shù)外的參數(shù)。因此,如果不希望函數(shù)修改參數(shù)的值,可以按值傳遞。
就像上面那個(gè)例子一樣,在函數(shù)內(nèi)部,值確實(shí)是交換的,而在函數(shù)外部,值不會(huì)改變。因此可以說(shuō),函數(shù)的值傳遞只是傳遞變量的副本。那么要是想讓函數(shù)能夠操作函數(shù)外實(shí)參的話(huà),就需要使用引用傳遞的方式了。
你想要的php知識(shí)在這里 → →php視頻教程