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()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值