在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。而向函数传递参数的方式有四种,分别是值传递、引用传递、默认参数和可变长度参数。

按值传递参数

默认的传参方式,我们在传递参数的时候默认使用的就是这个方式,对形式参数的操作,不会影响到实际参数的值。因此如果不希望函数修改实参的值,就可以通过值传递的方式。

<?php
function test($a){
  echo ++$a;
}
$i=10;
test($i);
echo '<br/>'.$i;
?>
登录后复制

运行结果:

11
10
登录后复制

通过运行结果可以看到,在函数内,数值确实是发生变化了,而在函数外部,数值却没有变化。因此可以说,函数的值传递只是传递变量的副本。那么要是想让函数能够操作函数外实参的话,就需要使用引用传递的方式了。

按引用传递参数

按引用传递参数,对形式参数的操作会影响实际参数。这样我们在函数内部是对这个参数本身进行操作。

<?php
function test(&$a){
  echo ++$a;
}
$i=10;
test($i);
echo '<br/>'.$i;
?>
登录后复制

其运行结果为:

11
11
登录后复制

函数的默认参数

可以给形式参数设置默认值,直接赋值就可以设置

注意:必须从右往左赋值,右边的必须要有,才能给左边的赋值,如果只给左边的赋值,而不给右边的赋值,左边的赋值将不作数

<?php
function test($a=10,$b=20){
  echo $a+$b;
}
test(20,25);
?>
登录后复制

其运行结果为:45,如果只给$a赋值,在调用的时候给$b赋值,那将会显示如下结果:

图文详解php函数参数的几种传递方式-LMLPHP

可变长度参数列表

在 PHP 5.6 及以后的版本中,函数的形式参数可使用…来表示函数可接受一个可变数量的参数,可变参数将会被当作一个数组传递给函数。

<?php
    function test(...$arr){
        print_r($arr);
    }
    echo '<pre>';
    test(1, 2, 3, 4);
?>
登录后复制

我们可以看到,他的运行结果为:

图文详解php函数参数的几种传递方式-LMLPHP

推荐学习:《PHP视频教程

以上就是图文详解php函数参数的几种传递方式的详细内容,更多请关注Work网其它相关文章!

09-09 15:51