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视频教程

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » php函数之如何用默认参数和可变长度参数方式传递?