PHP2 PHP函数及其基本使用

来源:互联网 发布:达梦数据库安装教程 编辑:程序博客网 时间:2024/06/06 08:27
【函数&功能】
    定义:在真实的项目开发过程中。有些代码会重复利用,咱们手动把它提出来,做成公共的代码,共团队来使用,这个咱们封装的代码段,就是函数(功能)


    优点:
        1、太高代码的利用率
        2、减少开发时间
        3、减少代码冗余
        4、可维护性提高
        5、方便调试代码

    函数定义格式

        function 函数名(参数1 = 值1 , 参数2 = 值2 , 参数3 = 值3 。。。。。。。。。。)
        {
            函数体代码段

            return 返回值;
        }

    类别
        类库函数??
            is_null is_array is .............

        自定义函数
            (就是咱们自己写的函数,根据项目开发过程当中,咱们根据需求自己编写出来的函数,可以供大伙一起使用)

        【function】
            定义函数的关键字

    【函数命名规范】
        与咱们的变量名几乎一样
        1、函数名不区分大小写
        2、函数名字使用英文,遵循规范
        3、数字可以加在中间或者是后面
        4、下划线不属于特殊符号
        5、不用特殊符号
        6、命名的时候要有意义
        7、遵循驼峰或者下划线
        8、不能使用系统给咱们的函数名还有系统给的关键字
    【基本格式】
        1、函数都要以关键字function 开始
        2、函数名后面要紧跟小括号
        3、小括号下面跟着大括号,大括号里面是函数体
        4、函数调用需要函数名加上小括号;

    
    【没有参数,没有返回值】

    【有参数没有返回值】

    function show($name = '朴槿惠',$val = '总统') //$name = '' $val = '';
    {
        echo '你的名字是'.$name.'我的属性是'.$val.'<br />';
    }

    参数就是   
        name val

        如果你写多个的话,用逗号隔开 可以写多个 没有上线

        就相当于 朴槿惠 赋值给变量name
    【有参数有返回值】

    重点
        return
            只是返回并没有输出

        return后面代码不执行
    【return】
        1、return 关键字只要碰到立马结束,后面代码统统不执行
        2、如果你想有多个返回值的时候,用数组去搞
        3、函数调用表达式的值就是函数的返回值

    【默认参数】
        1、默认参数就是不传参的时候用的那个变量
        2、如果你传了参数,就用传过来的值
        3、如果形参带有默认参数,一般放到后面
        4、如果没有默认参数,你必须给我传,不然会报错 (js 不是)

    【注意事项】
        1、函数必须要function开始定义
        2、function 后面加空 加函数名 加空格 加小括号
        3、函数名与变量名字命名规则基本一样,唯一不一样的是 不缺分大小写
        4、函数名后面跟括号,括号里面跟参数(TMD 就是变量)
        5、如果有默认参数 用等号 等号后面是你要跟的值
        6、调用函数的时候里面传入的值(实参) 就是把函数体外的变量的值拿到函数体内来使用
        7、函数体外的变量和函数体内的变量通常不是一个变量
        8、函数可以有返回值,也可以没有返回值,你如果想返回的话,你用return 关键字返回
        9、函数的调用跟你定义的顺序没有半毛钱关系 但是变量不是
        10、函数可以调用多次,没有事

    【作用域】

        定义:
            说白了就是一个变量的作用的范围,或者叫做生命周期
        【内部变量】
            就是函数体内声明的变量,内部变量的作用域 只在函数体内生效,程序执行完事以后自动销毁(垃圾回收机制)
        【外局变量】
            外部变量就是在函数体外声明的变量,不能在函数体内使用
            函数体外的变量名字可以与函数体内的变量的名字一样,但是一般咱们不这么去做

        【超全局变量】
            外部变量和内部变量是同一个变量
            $_GET $_POST $_FILE $_COOKIE $_SESSION $GLOBALS


$_POST变量
含义:代表网页客户端通过post方式所提交过来的数据!,是一个数组;
取得其中任何一项数据,其形式都是:$_POST[数据项名称’];
只有一种形式可以以post方式提交post数据:
<form  action=”目标文件.php”  method=”post”> ..... </form>
$_GET变量
含义:代表网页客户端通过get方式所提交过来的数据!,也是一个数组;
取得其中任何一项数据,其形式都是:$_GET[数据项名称’];
有多种形式可以以gett方式提交get数据:
a: <form  action=”目标文件.php”  method=”get”> ..... </form>
b:<a href =目标文件.php?a=1&b=xyz&cc=cctv” >文字</a>
说明:?号后面通常称为“名值对”
c:<script>  location.href =目标文件.php?a=1&b=xyz&cc=cctv” ;  </script>
d:<script>  location.assign(目标文件.php?a=1&b=xyz&cc=cctv” );  </script>
e:<php  header(“location:目标文件.php?a=1&b=xyz&cc=cctv”);
$_REQUEST变量
代表客户端在一次请求中提交过来的get数据和post数据的“合集”。
$_SERVER变量
代表一些客户端在一次请求中的浏览器端信息和服务器端信息。
     
$_SERVER[‘REMOTE_ADDR’]:获取访问者的ip地址
$_SERVER[‘SERVER_ADDR’]:获取服务器所在的ip地址
$_SERVER[‘SERVER_NAME’]:获取服务器的名字,其实就是站点设置中的servername
$_SERVER[‘DOCUMENT_ROOT’]:获取站点的真实物理地址,其实就是站点设置中的documentroot
$_SERVER[‘PHP_SELF’]:获取当前网页地址(不含域名部分)
$_SERVER[‘SCRIPT_FILENAME’]:获取当前网页地址物理路径
$_SERVER[‘QUERY_STRING’]获取当前网页地址中的所有get数据(就是?号后面部分),但只是一个整体的字符串而已。
$GLOBALS变量
代表我们自定定义的“全局变量”的另一份存储形式:即所有全局变量,都又存储到这个预定义常量中去了。
$v1 = 1;  //全局变量;则此时就有了: $GLOBALS[‘v1’];  其值为1;






        global关键字
            就是你想在函数体内使用函数体外的变量的时候可以用它(不推荐使用)


        $GLOBALS(推荐使用这个)

        在内部使用外部变量,里面值发生改变,外部不受影响
        如果你给内部的赋值了,就用内部的值,不赋值的话,它还是用外部的那个变量
            $num = 10;

            function sum()
            {
                //echo $num;

                //global $num;

                $num = $GLOBALS['num'];

                $num = 12;

                echo $num;
                echo '<br />';
            }

            sum();

            echo $num;

    重点
     【静态变量】
        function total()
        {
            static $num = 2;

            $num*=2;

            echo $num;

            echo '<br />';
        }


        total(); //4
        total(); //8
        total(); //16

        这个变量只会初始化一次 在运行的时候它会记录上一次的值 static变量不会销毁

    【内部函数】

        函数
            function_exists //判断函数是否存在
                function_exists — 如果给定的函数已经被定义就返回 TRUE
            is_callable(); 判断是否可以调用

        解决父级函数里面又子函数的情况(父级函数不能重复调用的问题)
        1、加静态变量(加一个标识符来判断是否声明过了这个子函数)

        2、利用function_exists() 来判断搞定

        3、利用is_callable

    【类型约束】 比了解在了解一点

        php是弱类型语言

        【形参和返回值的类型的约束】 注意:你不仅仅要了解,多写几遍
        function sum (int $num1 , int $num2)  //形参的
        {

            return $num1 + $num2;
        }

        (sum('2.3',3));
        */

        //小括号后面加上: 加上数值类型  把函数体返回的值给转成你限定的类型

        function sum($num1 , $num2):string //返回值的
        {
            return $num1 + $num2;
        }

        (sum(4,5));

        declare(strict_types = 1);  //如果你加上了这句话,就是更加严格,你限定的什么数据类型,你必须返回什么数据类型

    【call_user_func()】
    //小括号里面 就是函数名,如果你系统没检测到有这个函数就会报错 它必须是字符串,用引号引起来的
    //括号里面可以写 回调函数,还可以跟一个或多个实参
    //通过call_user_func 回调函数 后面可以跟实参 可以跟多个,用逗号隔开

    【引用传参】
        $num1 = 12;

        function test(&$num2)
        {
            $num2 = 18;

            echo $num2;
        }

        test($num1);

        echo $num1;


        $num1 是实际参数 传个 函数test 里面的形参 $num2   $num2 = $num1  此刻 num2 发生了改变 soga num1 也会发生改变
        因为它是引用的

    【可变参数长度】

        就是长度可以发生改变
        (func_get_args()); //获取所有的实参的值,并且以数组的形式返回 功能:获取所有实参的值
        (func_get_arg(3));  // 里面的参数是根据数组的下标去找的 功能:给出指定的下标 获取对应的值 如果 没有返回false
        (func_num_args()); // 返回出来你实际参数的总个数
        $cishu = func_num_args();  // 9

        实际参数求和的例子
        //把实际的参数拿出来赋值给你一个变量 这样你看着好看
        $arr = func_get_args(); //array(1,2,3,4,5,6,7,8,9);
        $sum = 0;
        for ($i = 0; $i < $cishu; $i++) {
            $sum+=$arr[$i];
        }
        // php 7.0新特性

        function test(...$arr)
        {
            var_dump($arr);
        }

        test(1,2,3,4,5,6,7);

        function test($a,$b,$c)
        {
            var_dump($a,$b,$c);
        }

        $arr = [1,2,3];

        test(...$arr);

        总结:
            ...$arr 这样传参的意思是把数组里面的值 一一赋值给形参

    【变量函数】

        将函数名字的字符串 赋值给你一个变量 变量加上小括号就执行了 给普通函数调用用法一样

        变量函数主要用在回调函数

        例子;计算器 多写几遍

    【回调函数】
        它就是变量函数的变形,可以通过它来完成一些复杂的功能 (就是一个一个拆出来)传入其他参数 配合 实现以下复杂的功能

    【匿名函数】

        它又称为叫做闭包

        所谓的匿名函数就是没有名字

        //如果你想用,怎么办 赋值给一个变量然后 该这么调用就怎么调用 变量加上() 跟普通函数调用一样
        $func = function ()
        {

            echo '女人是一个很可爱的动物,一般人可以读懂数,单一辈子读不懂女人的心';
        };


        $func();

    【use】

        使用外部变量的关键字 后面小括号里面写外部变量 如果你想改变外部变量的值 用引用 &

        $func = function ($actor1 , $actor2) use ($xz , &$swxg)

    匿名函数传值方式
        1、将匿名函数赋值给一个变量,将变量当做参数传过来
        2、直接传匿名函数

        注意:当匿名函数赋值给一遍变量的时候 记得加 ; 因为它是赋值表达式;
    【递归】
        定义:
            自己调用自己 当遇到 条件满足的时候结束 一层一层再出来

   
        //实在理解不了 就先记着 ,在 删除目录或文件的时候使用
        //递归操作

        function demo($n)
        {
            echo $n.'<br />';

            if ($n > 0) {
                demo($n - 1);
            } else {
                echo '-------------<br />';
            }

            echo $n.'<br />';
        }

        demo(3);
         结果:
            3
            2
            1
            0
            -------------
            0
            1
            2
            3

    【文件包含】
        用法
            include '文件';

        include 一般情况下使用include
        require
            如果下面的代码比较依赖上面的代码用它
        include_once
        require_once

        它俩的区别
            include 如果包含文件失败的话会有警告,代码继续向下执行
            require 如果包含失败,程序终止不会向下执行

        include_once
        require_once
            它会对程序进行一个检查是否被包含过了,如果被包含过了,你不会再重复包含 效率低

    【看手册】
        1、看函数的功能和版本
        2、看函数的返回值var_dump() gettype() isset() empty();
        3、看输入的参数是什么(重点)如果你是在看不懂 复制黏贴过来他们的例子代码运行一下看看
        4、看到【】代表参数可以传,也可以不传
        5、.......后面可以传任意多个参数
        6、& 就是引用传参
        7、mixed 就是可以传任意类型
        8、callback  就是传回调函数
原创粉丝点击