PHP函数学习

function 函数名([参数]){}   ===> 定义一个函数

函数个被命名的、独的代码段, 执行特定的任务,并可能给调用它的程返回个值 .

定义中的各部分如:

  • 函数是被命名的.每个函数都有唯的名称,在程序的其他部分使用该名称,可以执行函数中的话句,这个被称为调用函数
  • 函数是独.无需程序其他部分的干预,函数便能够执行其任务.
  • 函数执行特定的任.任务是程序运行时所执行的具体工作
  • 函数可以将个返回值返回给调用它的程序(有return 将 有返回值)

函数的参数

常规参数:

与其他编程语言一样,可以在函数名那直接指定
function a($a,$b){ }

如上 : 在使用方法时,可以直接传入两个变量,如果在调用函数时没有传入函数 或 函数传入过少,则会抛出警告!!

引用参数:

PHP可以像C一样,可以让变量显示的按引用传递
function b(&$a){}

如上 : 在使用方法时,变量是按引用传递的,这样,那么标量就不能在这个方法中使用,不然就会抛出一个异常

方法默认参数:

如果在使用程序时不指定的传递参数,那么可以让他使用默认的参数
function c($a=”默认参数”){
return $a;
}
echo c();            //这里不会发生错误 , 使用默认的值 , 输出 默认参数

如上 : 在使用方法时,如果没有传递参数,那么程序将默认传递指定的数据

可变的参数:

PHP可以像JavaScript一样,不在参数列表获取参数,而是在函数内使用方法获得
function d(){
foreach(func_get_args() as $v )
echo $v; //循环依输出111,222,333这三个参数
}
d(“111″,”222″,”333”);

如上 :使用方法获得参数信息,func_get_args()可以获得一个数组,其中包含所有的参数数据,而使用func_get_arg(index)可以获得某一个角标上的参数

函数

变量函数:

PHP支持可变蛮量,也支持可变函数

function bbb(){    echo “test”; }
$a = “bbb”;
$a();            //输出   test

回调函数:

简单来说,回调函数就是方法需要一个函数作为参数,然后这个方法自行调用这个函数,标识了Callback 就是需要一个函数作为参数,例如:

function demo($a){
    if(function_exists($a))
        return  $a()."bbb";
    /*     
         上面是使用可变函数,也可以使用PHP提供的方法,以上语句可以改为

         return  call_user_func_array($a,array())."bbb";
         第一个参数为:  函数的方法名
         第二个参数为: 函数的参数,由于参数是不定的,那么用一个数组来传递,数组中的数据,对应着不同的参数,如果没有参数,可以传递一个空数组        
    */
}
//这里的demo2是作为回调函数存在的
function demo2(){
    return "aaa";
}
var_dump(demo("demo2"));   // ===> 输出    aaabbb  
如果demo2()这个函数是作为类的函数存的的那么,我们在传递时就需要指明哪个类或对象
class bbb    //如果 demo2 是作为对象的方法
{
    static function demo2()
    {
        return "aaa";
    }
    function demo2_copy(){
        return "aaa";
    }
}
//如果调用的函数是在方法内的,那么在call_user_func_array使用时,必须传给一个数组
demo(array("bbb","demo2"));          //如果想要调用的方法在类内是静态方法,就要指明类名,方法史
demo(array(new bbb(),"demo2_copy"));  //如果在类中是一个对象方法,就要传递对象,方法名 

系统函数:

PHP内部支持了很多的函数(详见手册) :   http://php.net/manual/zh/funcref.php

递归函数:

如果函数直接或间接调用函数本身, 我们称这个函数为递归函数
function demo(){
   demo();     //这样就形成了递归,虽然这个会死循环,但我们在实际的开发中会加判断
}

加载函数:

加载函数是系统函数提供的一种包含\使用其他文件的方法
  • include:出错时将发生一个警告
  • require:出错时将发生致命错误
  • include_once:同include,但如果包含过,就不包含该文件
  • require_once:同require,但如果包含过,就不包含该文件

匿名函数(PHP5.3的新特性):

可以像js一样使用编程匿名函数,回调函数、闭包可使用此方法导入函数
function demo3($a){
    
    $a();
}
demo3(function(){
    echo "1111";
});

闭包函数

关键字USE,闭包有两个特性
  1. 作为一个函数变量的引用,当函数返回时,其处于激活区
  2. 一个闭包就是当函数没有返回时,一个没有释放的栈区
function demo3(){
    $a =1;
    $b = "f";
    $c = function() USE($a,$b){    //如果没有USE 关键字,$a,$b根本不存在
        return $a.$b;
    };
    return $c();
}
echo(demo3());    // 输出 1f

发表评论

发表回复

*

沙发空缺中,还不快抢~