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