首页 >后端开发 >php教程 >PHP函数介绍_PHP教程

PHP函数介绍_PHP教程

WBOY
WBOY原创
2016-07-12 09:04:38870浏览

PHP函数介绍

基本使用:
 
函数定义形式:
        function 函数名(形参1,形参2,...) {
            //函数体(代码块);
        }
    函数调用形式:
        本质上就是使用一个名字来达到执行其中函数中的的作用。通常可以分两种情形的调用:
        第一种:没有返回值的函数,则调用语句是独立语句
            函数名(实参1,实参2,...); //实参个数应该跟形参有匹配性
 
        第二种:有返回值的函数,则调用语句,通常会“混杂”在别的语句中,并将该调用语句当作一个“数据”来使用:
            A: $v1 = 函数名(); //赋值给其它变量,这里省略实参语法,下同
            B: $v1 = 函数名()*3+6; //参与运算,然后再赋值
            C: echo 函数名(); //直接输出
            D: echo 函数名()*3+6; //参与运算,然后再输出
            E: $v1 = 函数名2(函数名(),实参2,实参3,...); //当作实参使用
 
函数调用流程分析:
    开始调用:实际参数传数据给形式参数
    程序执行流程进入到函数中(一个独立的运行空间),跟全局执行空间是隔离的
    按常规的程序逻辑执行函数中的代码
    如果碰到return语句,则终止函数的执行,跳回函数开始调用的位置
    如果执行到函数的最后位置,也同样跳回函数开始调用的位置
其运行流程原理图如下:
PHP函数介绍_PHP教程
函数参数问题:
    一个函数,
    在定义时,有形式参数(形参:parameter)
        1:形参一定是一个变量名,
        2:该变量名只能是在该函数中有效的变量名,
        3:而且只在该函数调用并执行时有效,函数结束,通常这些变量也就“销毁”
    在调用时有实际参数(实参:arguemet)
        实参就是一个“实际数据”,该数据可以是一个“直接数据”(比如5,"abc"),也可以是一个变量中存储的数据。
        实参的作用是将其数据”赋值给“形参变量
        实参跟形参之间通常应该有个“一一对应”关系
 
    默认值参数:
        定义一个函数的时候,在形式参数的位置,可以给形式参数设定默认值,此时就可以称为默认值参数。比如:
PHP函数介绍_PHP教程
    
注意:
    默认值不能是对象或资源类型
    默认值只能是常量表达式,或常量,不能是变量
即:如下语法是正确的:function f1($v = 3) {}, function f1($v = __LINE__) {},
    如下语法是错误的:function f1($v = 3+1) {} , $m = 3,function f1($v = $m) {},
 
函数的参数传值问题:
    实际上,函数的参数传值问题,跟变量之间的传值是一样的规则(模式):默认是值传递。
    如果实参本身就是“直接数据”,则不存在传值问题,而是简单的“赋值”
    传值问题只发生在实参是变量的情形:
PHP函数介绍_PHP教程
    我们也可以让某个参数(形参)以引用传递的方式来传值:
    引用传递的形参(实参),在函数内部改变其值,在函数外面的实参,也会相应做修改
PHP函数介绍_PHP教程
    注意:如果某个形参设定为引用传递,此时,实参只能使用变量,否则会出现语法错误,如:
PHP函数介绍_PHP教程
 
参数的数量问题:
    1:函数的参数的数量可以是0个或多个 -- 具体多少个,不是语法问题,而是应用问题
    2:通常,实际参数的数量应该跟形式参数的数量一致
    3:但是,在第二条的基础上,如果形式参数中有默认值,则实际参数的对应项可以少省略    
        即:实参的个数,至少应该不少于形参中的非默认值参数的个数
 
但:我们还有一种特殊的处理函数参数的用法:自由参数数量
    定义时可以不给定形参,但调用时,却又可以给定任何个数的实参
在系统中,var_dump()这个函数也有同样的使用效果:
    $var_dump($v1);
    var_dum($v1,$v2,$v3);  //这样也是可以的
这种应用的实现,是依赖于系统中的3个系统函数来达到的:
    func_get_args();    //获得一个函数的接收到的所有实参数据,并结果是一个数组
    func_get_arg(n);    //获得一个函数所接收到的第n个实参数据(n从0开始)
    func_num_args();    //获得一个函数所接收到的所有实参数据个数

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1072632.htmlTechArticlePHP函数介绍 基本使用: 函数定义形式: function 函数名(形参1,形参2,...) { //函数体(代码块); } 函数调用形式: 本质上就是使用一...
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn