Logo
Section 1 / 15

PHP 函数

了解 PHP 中的函数及其类型。

导入

PHP 函数

了解 PHP 中的函数及其类型。

PHP中的函数

函数是函数式编程的核心。函数是输入与输出之间的关系。函数的arity(参数个数)是指函数接受的参数数量,而函数的签名则指定了返回类型和参数类型。最后,函数的定义封装了函数的具体逻辑。以下是一个数学上定义的函数:

f(x)=x+1f(x) = x + 1

它的参数个数为1,作用是将参数 xx 的值加1。参数 xx 实际上是一个占位符,代表函数定义中通过加法运算 x+1x + 1 所表达的一般性变换。由于不同的 xx 值会产生不同的结果,因此函数提供了局部计算能力。每个结果都唯一对应一个输入。例如: f(2)=3f(2) = 3 f(3)=4f(3) = 4

PHP中的函数形式多样,其灵活性与变量相当,具有以下特征:

  • 使用 function 关键字。
  • 两组括号:
    • 圆括号 () 用于参数列表。
    • 花括号 {} 用于函数体定义。
  • 返回类型(自 PHP 7.0 起支持)。

PHP中的函数类型

PHP 中的不同函数类型包括:

  • 命名函数
  • 匿名函数
  • 闭包
  • 方法

命名函数

PHP中的命名函数(如下面的例子所示)与其他编程语言中的函数基本相同(仅存在少量语法差异)。它们通常由一个任意名称构成,位于 function 关键字和参数列表之间,后接包含状态转换表达式的函数体。

1 2匿名函数 3另一方面,匿名函数、无名函数或称为lambda 函数,会创建 PHP Closure 类的实例,通常被赋值给变量或嵌入到其他数据结构中。作为回调函数非常有用,匿名函数具有与命名函数相同的语法特性,只是没有显式的函数名称。 4 $x - $y; 5 6echo $subtract(3, 2); // 结果为 1 7闭包 8闭包与匿名函数密切相关。闭包是一种可以访问外部作用域变量的匿名函数。当需要在匿名函数内部与外部定义的变量进行交互时,闭包特别有用。use 关键字提供了对外部状态的访问权限。然而,有些人认为这种方式增加了不必要的冗余。 9 10类方法 11PHP 中最后一种函数类型是封装在类作用域内的类方法。类在函数式编程中具有重要意义。 12x = $x; 13 $this->y = $y; 14 } 15 16 public function add() : int 17 { 18 return $this->x + $this->y; 19 } 20} 21 22$op = new Operation(1, 2); 23 24var_dump($op->add()); // 结果为 "int(3)" 25上述代码片段中未包含设置器(setters)。因为设置器会使函数变得不纯,因此今后应摒弃类中使用设置器的概念。

PHP中的函数式编程入门

函数式编程与面向对象编程