php 函数实现
PHP 函数实现基础
在 PHP 中,函数用于封装可重复使用的代码块。函数通过 function 关键字定义,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致性。
function functionName($param1, $param2) {
// 函数体
return $result;
}
函数参数与返回值
PHP 函数支持默认参数值,允许调用时省略部分参数。返回值通过 return 语句传递,未显式返回时函数默认返回 null。
function greet($name = "Guest") {
return "Hello, " . $name;
}
echo greet(); // 输出: Hello, Guest
可变参数函数
使用 ... 运算符实现可变参数(PHP 5.6+),参数以数组形式传递。func_get_args() 函数也可用于获取所有参数(兼容旧版本)。
function sum(...$numbers) {
return array_sum($numbers);
}
echo sum(1, 2, 3); // 输出: 6
匿名函数(闭包)
匿名函数通过 Closure 类实现,可作为变量赋值或参数传递。使用 use 关键字继承父作用域的变量。

$greet = function($name) {
return "Hello, $name";
};
echo $greet("Alice"); // 输出: Hello, Alice
$adder = function($x) use ($y) {
return $x + $y;
};
类型声明与严格模式
PHP 7+ 支持参数和返回值的类型声明。启用严格模式(declare(strict_types=1))时,类型不匹配会抛出 TypeError。
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
echo add(1, 2); // 输出: 3
递归函数
递归函数需设置终止条件,避免无限循环。典型用例包括阶乘计算、目录遍历等。

function factorial($n) {
if ($n <= 1) return 1;
return $n * factorial($n - 1);
}
echo factorial(5); // 输出: 120
内置函数与自定义函数
PHP 提供大量内置函数(如 strlen()、array_map())。自定义函数应避免与内置函数重名,可通过 function_exists() 检查冲突。
if (!function_exists('customFunction')) {
function customFunction() {
// 实现代码
}
}
函数作用域
函数内默认无法访问全局变量,需通过 global 关键字或 $GLOBALS 超全局数组访问。静态变量(static)在多次调用间保留值。
$globalVar = 1;
function testScope() {
global $globalVar;
static $count = 0;
$count++;
return $globalVar + $count;
}
可变函数
通过变量名动态调用函数,变量值为函数名时可用 $var() 形式调用。适用于回调或插件系统。
function sayHi() { echo "Hi!"; }
$func = 'sayHi';
$func(); // 输出: Hi!
注意事项
- 避免函数嵌套过深,保持单一职责原则。
- 参数过多时考虑使用数组或对象封装。
- 启用错误报告(
error_reporting(E_ALL))捕捉未定义函数等错误。






