在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。而向函数传递参数的方式有四种,分别是值传递、引用传递、默认参数和可变长度参数。
按值传递参数
默认的传参方式,我们在传递参数的时候默认使用的就是这个方式,对形式参数的操作,不会影响到实际参数的值。因此如果不希望函数修改实参的值,就可以通过值传递的方式。
<?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 5.6 及以后的版本中,函数的形式参数可使用…来表示函数可接受一个可变数量的参数,可变参数将会被当作一个数组传递给函数。
<?php function test(...$arr){ print_r($arr); } echo '<pre class="brush:php;toolbar:false">'; test(1, 2, 3, 4); ?>
我们可以看到,他的运行结果为:
推荐学习:《PHP视频教程》
Atas ialah kandungan terperinci 图文详解php函数参数的几种传递方式. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!