美文网首页17.11 PHP入门
10 函数、作用域

10 函数、作用域

作者: 海野夏桑 | 来源:发表于2017-12-18 16:52 被阅读4次

    函数的一些问题

    //稳健进行函数定义的方法,使用function_exists()
    if(function_exists("f1") == false){
        function f1(){}
    }
    

    php非常多系统函数,有各种各样的作用,取查手册就可以了

    参数

    定义一个没有形参的函数,其实可以接受任意个数个参数的,并且这些实际参数都会放进一个数组中,可以用 func_get_args() 来获得

    1.func_get_args()
    2.func_num_args() //获取实参的数量
    3.func_get_args($i) //获取第$i个实参,从0开始计数

    返回值

    return 语句来返回值。注意的是,return后无论跟不跟数据,都会终止函数的运行。

    可变函数

    和可变变量类似,函数的名字是一个变量

    function f1(){
        ....
    }
    $v1 = "f1";
    $v1();    //可以用变量名来调用函数啦
    

    匿名函数

    嘛,就是没名字的函数,有两个作用:

    1.赋值给一个变量,然后可以像其他函数一样用变量名进行调用
    2.作为另一个函数的实际参数进行使用,这样就可以在一个函数内,调用另一个函数了?

    作用域

    • 局部作用域:函数内部范围
    • 超全局作用域:所有代码中都能用。只有系统定义的几个而已。$_GET,$_POST,$_REQUEST,$_SERVER,$_COOKIE,$SESSION,$_FILES,$GLOBALS 等等
    • 全局作用域:函数外部

    一般全局不能访问局部,局部不能访问全局。

    1.全局访问局部

    在函数内部将变量定义为静态变量

    static $v1 = 12;
    //该语句只会执行一次,会令到变量$v1不会被销毁
    //可见,静态变量可以用来统计一个函数被调用了多少次
    
    2.局部访问全局(php真搞事情。。。局部居然不能直接访问全局?叫啥全局。。。)
    //方法1:
    //函数内部使用关键字声明全局变量同名变量
    global $v1, $v2;
    
    //方法2:
    $GLOBALS['v1']
    

    相关文章

      网友评论

        本文标题:10 函数、作用域

        本文链接:https://www.haomeiwen.com/subject/hlnywxtx.html