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