PHP 函数
最后修改于 2025 年 4 月 16 日
PHP 的 function
关键字用于声明可重用的代码块。 函数有助于将代码组织成逻辑单元,并避免重复。 它们可以接受参数并返回值,使它们成为多功能工具。
基本定义
函数是一个执行特定任务的命名代码块。 函数使用 function
关键字和名称来声明。
函数可以接受参数(输入)并返回值(输出)。 它们促进代码重用,并使程序更易于维护和理解。
语法: function name(参数) { 代码 }
。 必须调用函数才能执行其代码。 可以使用不同的参数多次调用它们。
基本函数
此示例演示了一个简单的函数,该函数打印问候消息。
<?php declare(strict_types=1); function greet() { echo "Hello, World!"; } greet(); // Call the function
该代码定义了一个名为 greet
的函数,该函数输出一条消息。 使用其名称后跟括号来调用该函数。 这展示了最基本的函数结构,没有参数或返回值。
带参数的函数
此示例显示一个接受参数以自定义其输出的函数。
<?php declare(strict_types=1); function greetPerson(string $name) { echo "Hello, $name!"; } greetPerson("Alice"); greetPerson("Bob");
函数 greetPerson
接受 $name
参数。 参数被类型提示为字符串。 该函数使用不同的名称调用两次,演示了参数的用法。 每次调用都会产生不同的输出。
返回值
此示例演示一个计算并返回值 的函数。
<?php declare(strict_types=1); function addNumbers(int $a, int $b): int { return $a + $b; } $result = addNumbers(5, 3); echo "The sum is: $result";
addNumbers
函数接受两个整数并返回它们的总和。 返回类型在参数列表后声明为 int。 返回值存储在 $result
中并显示。 返回值使函数更灵活。
默认参数值
此示例显示了如何定义具有默认参数值的函数。
<?php declare(strict_types=1); function makeCoffee(string $type = "cappuccino") { echo "Making a cup of $type.\n"; } makeCoffee(); makeCoffee("espresso");
函数 makeCoffee
的 $type
参数具有默认值。 当不带参数调用时,它使用默认值。 当提供时,它使用指定的值。 默认参数使函数更灵活。
函数中的变量作用域
此示例演示了函数内部和外部变量作用域的差异。
<?php declare(strict_types=1); $globalVar = "I'm global"; function testScope() { $localVar = "I'm local"; echo $localVar; // echo $globalVar; // This would cause an error } testScope(); echo $globalVar;
默认情况下,函数内部的变量具有局部作用域。 $localVar
只能在 testScope
中访问。 必须使用 global
关键字或 $GLOBALS
显式访问全局变量。
递归函数
此示例显示了一个递归函数,该函数调用自身来计算阶乘。
<?php declare(strict_types=1); function factorial(int $n): int { if ($n <= 1) { return 1; } return $n * factorial($n - 1); } echo "Factorial of 5 is: " . factorial(5);
factorial
函数使用较小的值调用自身,直到它到达基本情况($n <= 1
)。 递归功能强大,但需要一个终止条件。 每次递归调用都会添加到调用堆栈中。
匿名函数
此示例演示了 PHP 中的匿名函数(闭包)。
<?php declare(strict_types=1); $greet = function(string $name) { echo "Hello, $name!"; }; $greet("Charlie"); $numbers = [1, 2, 3, 4]; $squared = array_map(function($n) { return $n * $n; }, $numbers); print_r($squared);
匿名函数定义时没有名称,并被分配给变量。 它们可以作为参数传递给其他函数,例如 array_map
。 该示例展示了一个简单的闭包和与数组处理一起使用的闭包。 闭包对于回调很有用。
最佳实践
- 命名: 使用描述性名称来指示函数的功能。
- 单一职责: 每个函数都应该做好一件事。
- 参数计数: 将参数限制在合理的数量(最多 3-4 个)。
- 类型声明: 对参数和返回值使用类型提示。
- 文档: 添加 PHPDoc 注释以解释函数行为。
来源
本教程介绍了 PHP 函数,并提供了实用示例,展示了 PHP 中函数的声明、参数、返回值和高级函数特性。
作者
列出 所有 PHP 教程。