php函数之如何用默认参数和可变长度参数方式传递?
上一篇文章中我们了解了向函数传递参数中的引用传递参数,有需要的请看《php函数之如何引用传递参数?》。这次我们向大家介绍向函数传递参数中的另外两种传递方式,有需要的可以参考参考。
向函数传递参数的方式有四种,分别是值传递、引用传递、默认参数和可变长度参数。之前两篇文章介绍了值传递和引用传递,这次我们就来介绍默认参数和可变长度参数。
默认参数
首先来看一个小例子。
<?php function add($a, $b=56){ echo $a.' + '.$b.' = '.($a+$b).'<br>'; } add(11); add(37, 29); ?>
输出结果是
11 + 56 = 67 37 + 29 = 66
这个例子可以很清晰的看到,当提供的参数为一个,并且另一个参数有默认值时,将直接进行运算;若提供的参数为两个,则按提供的值来进行运算。
默认参数是为函数的一个或多个形式参数指定默认值。如果调用函数时没有传入相应的值,函数将使用此默认值,这样可以避免调用时没有参数的错误,使一些程序更加合理。如果传入相应的参数,将替换默认值。
可变长度参数
先举一个小栗子。
<?php function test(...$arr){ print_r($arr); } echo '<pre>'; test(1, 2, 3, 4); test(5, 6, 7, 8, 9, 10); ?>
输出结果是
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )
这个例子可以很清晰的看到,两次给函数提供的参数值不相同,但是观察结果会发现输入的数值都输出了。我们看函数本身,发现它与普通函数有所不同,它添加了“...
”。这是可变长度参数的一大特点。
在 PHP 5.6 及以后的版本中,函数的形式参数可使用…来表示函数可接受一个可变数量的参数,可变参数将会被当作一个数组传递给函数。
你想要的php知识都在这里哦→php视频教程