上一篇文章中我們了解了向函數(shù)傳遞參數(shù)中的引用傳遞參數(shù),有需要的請(qǐng)看《php函數(shù)之如何引用傳遞參數(shù)?》。這次我們向大家介紹向函數(shù)傳遞參數(shù)中的另外兩種傳遞方式,有需要的可以參考參考。
向函數(shù)傳遞參數(shù)的方式有四種,分別是值傳遞、引用傳遞、默認(rèn)參數(shù)和可變長(zhǎng)度參數(shù)。之前兩篇文章介紹了值傳遞和引用傳遞,這次我們就來(lái)介紹默認(rèn)參數(shù)和可變長(zhǎng)度參數(shù)。
默認(rèn)參數(shù)
首先來(lái)看一個(gè)小例子。
<?php function add($a, $b=56){ echo $a.' + '.$b.' = '.($a+$b).'<br>'; } add(11); add(37, 29); ?>
輸出結(jié)果是
11 + 56 = 67 37 + 29 = 66
這個(gè)例子可以很清晰的看到,當(dāng)提供的參數(shù)為一個(gè),并且另一個(gè)參數(shù)有默認(rèn)值時(shí),將直接進(jìn)行運(yùn)算;若提供的參數(shù)為兩個(gè),則按提供的值來(lái)進(jìn)行運(yùn)算。
默認(rèn)參數(shù)是為函數(shù)的一個(gè)或多個(gè)形式參數(shù)指定默認(rèn)值。如果調(diào)用函數(shù)時(shí)沒(méi)有傳入相應(yīng)的值,函數(shù)將使用此默認(rèn)值,這樣可以避免調(diào)用時(shí)沒(méi)有參數(shù)的錯(cuò)誤,使一些程序更加合理。如果傳入相應(yīng)的參數(shù),將替換默認(rèn)值。
可變長(zhǎng)度參數(shù)
先舉一個(gè)小栗子。
<?php function test(...$arr){ print_r($arr); } echo '<pre>'; test(1, 2, 3, 4); test(5, 6, 7, 8, 9, 10); ?>
輸出結(jié)果是
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )
這個(gè)例子可以很清晰的看到,兩次給函數(shù)提供的參數(shù)值不相同,但是觀(guān)察結(jié)果會(huì)發(fā)現(xiàn)輸入的數(shù)值都輸出了。我們看函數(shù)本身,發(fā)現(xiàn)它與普通函數(shù)有所不同,它添加了“...
”。這是可變長(zhǎng)度參數(shù)的一大特點(diǎn)。
在 PHP 5.6 及以后的版本中,函數(shù)的形式參數(shù)可使用…來(lái)表示函數(shù)可接受一個(gè)可變數(shù)量的參數(shù),可變參數(shù)將會(huì)被當(dāng)作一個(gè)數(shù)組傳遞給函數(shù)。
你想要的php知識(shí)都在這里哦→php視頻教程