PHP函数要点

一、函数分类

函数分为:自定义函数,内置函数。

二、值传递和引用传递的区别:

1.值 传 递:传递的是值的副本。函数范围内对值的任何改变在函数外部都会被忽略。
2.引用传递:传递的是值的内存地址。函数范围内对值的改变在函数外部会发生改变。
3.优缺点:按值传递,php必须复制值。特别是对于大型的对象和字符串来说,复制一份也占用内存,这将是一个很大的代价。按引用传递则不需要复制值,对于提高性能来说很有好处。

	function add(&$a,$b){
        $a = 3;
        return $a+$b;
    }
    $num1 = 10;
    $num2 = 20;
    echo add($num1,$num2)."---".$num1;

三、在函数中如何使用全局变量

1.参数传递的方式
2.用global关键字在函数中声明
3.用GLOBALS全局变量数组的使用
使用global和GLOBALS的区别:当在函数内部销毁全局变量时,global关键字销毁的是全局变量的别名,而 G L O B A L S [ ] 是 指 向 全 局 变 量 本 身 , 所 以 销 毁 后 仍 可 以 使 用 GLOBALS[]是指向全局变量本身,所以销毁后仍可以使用 GLOBALS[]使GLOBALS[]来取得全局变量

	$quan_ju = "全局变量";
    function ming(){
        global $quan_ju;
        unset($quan_ju);
        // echo $quan_ju;
        echo $GLOBALS["quan_ju"];
    }
    ming();

四、注意形参默认值的顺序,必须放在非默认参数的后边

    function sum($b,$a=10){
        return $a+$b;
    }
    echo sum(15);

五、局部静态变量和局部变量的区别

局部变量只初始化一次,长度内存不会销毁直到服务关闭。而局部变量只在语句块中只用,生命周期只在语句块中。

    function a(){
        $i = 1;//局部变量
        echo ++$i;
    }
    a();//2
    a();//2
    a();//2
    function a1(){
        static $i = 1;//局部静态变量
        echo ++$i;
    }
    a1();//2
    a1();//3
    a1();//4

六、匿名函数(又叫闭包函数),是指没有名称的函数

匿名函数:又叫闭包函数,是指没有名称的函数。

	$sex = "boy";
    $age = 18;
    $str = function($name)use($sex,$age){
        return "我的名字是{$name},我的性别是{$sex},我的年龄是{$age}";
    };
    echo $str("懒羊羊");
    $str = "I love three thinfs:the sun,the moon and you.The sun for the day,the moon for the night,and you forever.";
    $arr = explode(",",$str);
    print_r($arr);
    echo "<hr>";
    // 将数组按照要求拼接为字符串
    $arr1 = ["红的0","白的","蓝的","绿的"];
    $s = implode($arr1,"----");
    echo $s;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值