php—函数

函数概念

函数结构:

    // 函数名字不区分大小写,命名规则与变量命名规则一样
    function function_name([形参]) {
        // 函数体
        return 返回值;      //可以没有返回值,系统默认返回NULL
    }

php中的函数可以先调用,后定义(php先编译,再执行)。

函数的调用时在栈中开辟内存运行的。

参数说明

函数的参数分为:形参实参
- 形参:是一种形式,是用来保存函数调用时外部传进来的实际数据在函数内部运行的变量。
- 实参:是一种数据,在使用时传递给形参。

在定义了函数的形参后,必须要传递实参。实参可以比形参多,但多出的实参传递给函数,会被函数忽略(接收了但是没有使用而已)。

参数默认值

函数在定义时,有些参数可以给定默认值,如果传入实际参数,则以实际参数为准,如果没有传入实际参数,则以默认值为准

    function square($n = 1) {
        // 参数默认值为1
    }

函数形参可以没有默认值,也可以有多个默认值

函数有默认值的参数必须定义在所有参数的最后(系统把实参传递给形参是按顺序给)

参数传值方式

  • 值传递
  • 引用传递,引用传递必须使用变量传递
    function fun($a, &$b) {
        $a++;
        $b++;
    }
    // a为值传递
    // b为引用传递

静态变量

函数内部使用static关键字修饰的变量,这种变量只在函数第一次调用时执行一次,在函数再次调用时,会自动跳过这一行,不会重复定义。并且只能在当前函数内部使用,其他任何地方都不能使用。

作用域

全局作用域:用户自定义的全局变量,在函数外部定义的变量。全局作用域能够在函数外部的任何地方使用,生命周期:从定义直到脚本结束(手动释放除外)。可以使用$GLOBAL[“变量名称”]在任何地方访问全局变量,也可使用global关键字在函数内部引用全局变量。
局部作用域:用户在函数内部定义的局部变量,只能在函数内部使用。
超全局作用域:是系统定义的,能够在php脚本的任何地方使用,包括函数内部,其生命周期是脚本周期

php强制类型(PHP7)

  • 强制型参数:就是在定义函数给定形参是,根据函数功能需求,要求形参必须是某种数据类型

    function fun($a, $b) {
        return $a + $b;
    }
    fun("1", "1b");     // 系统会警告,但是可以运行

    function fun(int $a, int $b) {
        return $a + $b;
    }
    fun("1", "1b");     // 致命错误,给定实参与形参类型不合
  • 强制型返回值:在函数有返回值时,指定含少数返回值的数据类型
    function fun(int $a, int $b) {
        return $a + $b;     // 没有强调返回值类型,其返回值为整型
    }

    function fun(int $a, int $b):float {
        return $a + $b;     // 强制返回值为float类型
    }
  • 在进行强制类型控制的时候,会在最上面顶格写上一行代码,表示后续使用强制类型。但是实际的价值不高,即使没有这句,声明的强制类型依然后效。
    declare(strict_types = 1);

可变函数

并不是函数可以变化,而是函数的名字具有不确定性,是通过变量来保存函数名字,然后也是通过变量+()的方式来实现函数的访问。

语法

    function display() {
        // 函数体
    }
    $var = "display";
    $var();     //调用函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值