php中的函数

作者: 乔乔_老师 | 来源:发表于2018-08-07 07:50 被阅读0次

    一、函数

    一部分可重复执行的代码段,多次执行,一次编译

    特点:
     1.减少程序运行的复杂性
     2.提高程序的可靠性
     3.提高函数的开发效率
     4.提高程序的维护性
     5.提高程序的重复性
    
    语法
    1.带参数的函数
    function fun(参数1,参数2){
                      
     }
    
     function sayName($name,$age,$city){
        echo "你的名字:<span style='color:#f00 '></span>".$name.',你的年龄:'.$age.'你所在的城市:'.$city;
                   }
    sayName('张三',18,'北京');
    
    带返回值的函数
    2.带返回值的函数
     function fun(参数1,参数2){
         return 
    }
    检测函数是否存在:
     function_exists(函数名);
    
    
    function fun($a,$b){
      return $a+$b;
    }
    echo fun(3,5);
    
    检测一个函数是否存在
       function_exists(‘函数名’);
    使用var_dump();输出,会得到一个布尔类型的值,true或false
    
    var_dump(function_exists('fun'));
    

    二、函数的作用域

    $bbs='百度';
    function fn1(){
        echo $bbs;
    }
    fn();//会报undefined
    
    在函数内是访问不到函数外的变量的
    
    function fn(){
       $bbs='www.baidu.com';
    }
    fn();
    echo $bbs;
    
    在函数外也是访问不到函数内的变量的
    

    如果我们现在想访问函数内的变量,这时候就需要借助关键词global了

    global关键词用于访问函数内的全局变量
    $bbs='百度';
    function fn3(){
      global $bbs;
       $bbs='www.baidu.com';
      echo '函数内'.$bbs;//www.baidu.com
    }
    fn3();
    echo '函数外'.$bbs;//www.baidu.com
    
    卸载一个函数
    $bbs='百度';
    function fn3(){
      global $bbs;
      $bbs='www.baidu.com';
      unset($bbs);//卸载一个函数
      echo '函数内'.$bbs;
    }
    fn3();
    echo '函数外'.$bbs;//www.baidu.com
    
    即使把函数卸载了我们发现在函数外输出的热然是 'www.baidu.com'
    
    静态变量 static:
    作用:
    1.是在所有对函数调用中共享
    2.只有在第一次调用时赋值
    
    function fn(){
       $i=1;
       $i++;
       echo $i;
    }
    fn();//2
    fn();//2
    fn();//2
    fn();//2
    fn();//2
    

    我们发现反复调用函数,输出的都是2
    如果我们想输出2,3,4,5那么我们就需要做如下改变

    function fn(){
       static $i=1;
       $i++;
       echo $i.'<br>';
    }
    fn();
    fn();
    fn();
    fn();
    fn();
    

    三、按值传递与按址传递

    按值传递
    function eat($name){
            $name=$name.'女士';
            echo $name.'在吃饭<br>';
    }
    $name='小张';
    eat($name);
     echo $name;
    
    按址传递
    function eat(&$name){
       $name=$name.'女士';
       echo $name.'在吃饭<br>';
    }
     $name='小张';
    eat($name);
    echo $name;
    

    四、在函数中传递多个参数

    func_get_args();//接收一个参数,包含数组中的所有参数
    func_num_args;取得共有几个参数
    func_get_arg(整数);//获得第几个

    参数,序号是从0开始

    function stu_name(){
       $arr=func_get_args();
       //便利
        foreach($arr as $key=>$value){
            echo '学生{$key}的名字是:'$value.'<br>';
            echo '一共有'.func_num_args().'名学生';
            echo '第三个学生是'.func_get_arg(2); 
         }
    }
    stu_name('张三','李四','王五','赵六','周期','杨八','李九');
    

    五、递归调用

    递归:在函数体内调用自己,递归调用应该加上一个停止调用的函数,否则会陷入死循环
    求阶乘:
    function jc($i){
       if($i>1){
         $s=$j*jc($i-1);
       }else{
         $s=1
       }
    return $s;
    }
    echo jc(3);
    

    相关文章

      网友评论

        本文标题:php中的函数

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