PHP-自定义函数相关

一:函数定义

  PHP中的函数定义和javascript中的函数定义非常相似

  函数定义格式:function 函数名(参数1,参数2,参数3.......){  ...代码块...  }

  

二:函数参数

  形式参数:在函数声明的时候给的参数叫做形式参数,简称:形参

  实际参数:在函数调用的时候给的参数叫做实际参数,简称:实参

   function wirte($n){
        for ($i=1; $i <$n ; $i++) { 
           echo "$i";
        }
  }
  wirte(2);
  //以上函数中声明函数是的$n为行参
//调用函数传的2是实参

  参数的个数

  1.实参>形参

  2.实参=形参

  3.实参<形参

  4.形参设置了默认值

  5.传参个数不确定

    //1.实参>形参
        
        function demo01($n,$m){
            echo "\$n+\$m的结果是",$n+$m;
        }
        demo01(1,2,3,4);//$n+$m的结果是3


        //2.实参=形参  完美状态
        

        //3.实参<形参
        function demo02($n,$m){
            echo "\$n+\$m的结果是",$n+$m;

        }
        //demo02(1);//报错Uncaught ArgumentCountError: Too few arguments to function demo02()  参数太少无法执行

        //4.形参设置了默认值
        
        function demo03($n,$m=3){
            echo "<br>";
            return $n+$m;
        }
        echo demo03(1,2);//当函数形参设置了默认值

        //如果调用函数没有传参给形参则使用形参的默认值
        //如果调用函数传了实参给形参,此时形参就使用传过来的实参
        
        //5.传参个数不确定
        //可变参数列表:当传入的参数不确定的时候,这时候可以使用可变参数列表去获取数值
        // func_exists          判断函数是否已经存在
        // func_get_args($n)    获取函数调用的第几个实参
        // func_get_args()      获取函数调用的所有实参
        
        //案例:获取调用函数是传入参数的总值
        function demo04(){
            $allargs = func_get_args();
            $num = 0;
            for ($i=0; $i <count($allargs) ; $i++) { 
                $num+=(int)$allargs[$i];
            }
            return  $num;
        }
        echo "<br>";
        echo demo04(1,2,3,4,5);//15

三:函数返回值

  

<?php  

        // 返回单个数值
        function demo06($m){
            return $m;
        }
        echo demo06(1);
        // 返回多个数值
        function demo07($m,$n){
            return array($m,$n);
        }
        var_dump(demo07(1,2));

?>

四:可变函数

  

<!-- 处理图片 -->
 <?php 
    
    //可变函数,函数名是一个变量
   
    $a = "wirte";
    // $a(10);

     //可变变量,变量名是一个变量
     $a = 1;
     $v = "a";
     // echo $$v;

    function jpg(){
        echo "<br>处理jpg图片";
     }
    function gif(){
        echo "<br>处理jpg图片";
     }
    function png(){
        echo "<br>处理jpg图片";
     }
     $file = "";
    if (isset($_GET["file_name"])) {
       $file = $_GET["file_name"];//用户上传的文件名
        $x = strrchr($file,".");
        $img_type = substr($x,1);
        echo "$img_type";
        $img_type();
    }
    /*
        string strrchr( string $haystack, mixed $needle)
        该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。
        
        substr(字符串,开始索引,长度)
    */

  ?>
  <form action="" method="GET">
      <input type="file" name="file_name">
      <input type="submit" value="上传">
  </form>
    

猜你喜欢

转载自www.cnblogs.com/bai-boy/p/12175232.html