4-2. PHP函数参数传递,可变函数、递归函数、内置函数

参数传递

1)按值传递参数

按值传递参数,我们在参数传递的时候默认的就是使用这个方式,

对形式参数的操作根本不影响实际参数的值,两者没有联系 

function test($a){
    echo ++$a;          //因为a++中的++是在输出后执行与printout一样原理,所以要用++a
}

$i=100;
echo test($i)."<br/>";  //101 
echo $i."<br/>";        //100  代入的实际参数值100不受影响
echo $i;                //100

2)按引用传递参数

按引用传递参数,相当于形式参数和实际参数指的是同一个人,只是名字不一样,

对形式参数的操作会直接影响到实际参数(变量) 

function test(&$a){
    echo ++$a;
}

$i=10;
test($i);  //11
echo'<br/>'.$i; //11

3)函数的默认参数

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

如果没传值则按默认值进行计算,如果传值则按传的值进行计算

给形式参数加默认值的时候是从右往左加的,右边的必须有,才能给左边的加 

//例子1
function test($a=10){  //参数的默认值
    echo ++$a;
}
test(); //11


//例子2
function test($a=10){
    echo ++$a;
}
test(20); //21
function test($a=20,$b=10){
    echo $a+$b;
}
test(); //可以两个都用默认值都不传
function test($a=20,$b=10){
    echo $a+$b;
}

test(25);  //35

/* 情况2 */
function test($a,$b,$c=1){
    echo $a+$b+$c;
}
echo test(2,3); //6

4)可变长度参数列表

php提供的,可以直接使用

 这三个函数可以使用在我们自定义函数内部,能够返回给我们关于此参数的信息

func_get_args();
func_get_arg();
func_num_args();
<?php
    function test(){
        var_dump(func_get_args()); //显示所有参数信息
        var_dunp(func_get_arg(4)); //查看第4个参数
        var_dump(func_num_args()); //返回参数个数
}

test(21,323232,4343,'单位取得','dmmcc');
?>

“<br/>”在php网页中可以显示换行,

<br/>在在html文件中可以不加双引号

可变函数(变量函数)

把一个函数赋值给一个变量 

function test(){
    echo '我是test函数';
}

$a='test'; //把函数名加上引号赋值给变量
$a(); //test(),调用函数

可变函数不能用于例如 echo(),print(),unset()...

递归函数

在函数内部自己调用自己的函数

1)函数在被调用的执行过程中会在内存里分配空间用于存储临时数据,那么函数在执行过程中默认之

间时没有联系的(除了静态变量、按引用传、全局变量),里面的变量默认都是全局变量,相互之间没有影响

2)递归函数,在函数的内部需要适时结束函数运行的条件

<?php
    function test($n){
        echo $n.'&nbsp;';

        if($n>0){
            test($n-1);
        }
        else{
            echo'<-->';
        }
        echo $n.'&nbsp';
    }

test(3);      // 3 2 1 0 <-->0 1 2 3

?>

内部函数

比如,

echo()
include()
include_once()
require()
require_once()
发布了198 篇原创文章 · 获赞 82 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/104606845
今日推荐