php 函数 实现
PHP 函数实现基础
PHP 函数通过 function 关键字定义,语法如下:
function functionName($param1, $param2 = "default") {
// 函数体
return $result;
}
- 函数名不区分大小写(但调用时建议保持声明时的大小写)
- 参数可设置默认值
- 使用
return返回值,未显式返回时默认返回null
参数传递方式
值传递(默认)与引用传递:
function byValue($arg) {
$arg += 1;
}
function byReference(&$arg) {
$arg += 1;
}
$num = 5;
byValue($num); // $num 仍为 5
byReference($num); // $num 变为 6
可变数量参数
三种处理可变参数的方法:
// 1. func_get_args() 获取所有参数
function sum() {
$args = func_get_args();
return array_sum($args);
}
// 2. ...$args (PHP 5.6+)
function sum(...$numbers) {
return array_sum($numbers);
}
// 3. 类型提示 + 可变参数
function sumAll(int ...$numbers) {
return array_sum($numbers);
}
返回值类型声明
PHP 7.0+ 支持返回值类型声明:
function add(float $a, float $b): float {
return $a + $b;
}
// 严格模式需在文件开头声明
declare(strict_types=1);
匿名函数(闭包)
匿名函数实现方式:
$greet = function($name) {
return "Hello $name";
};
echo $greet("World"); // 输出 "Hello World"
// 使用 use 继承外部变量
$prefix = "Mr";
$greet = function($name) use ($prefix) {
return "Hello $prefix $name";
};
箭头函数(PHP 7.4+)
简化闭包写法:
$factor = 10;
$multiplier = fn($x) => $x * $factor;
echo $multiplier(5); // 输出 50
生成器函数
通过 yield 实现迭代器:
function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
yield $i;
}
}
foreach (xrange(1, 10) as $num) {
echo "$num ";
}
函数存在性检查
检查函数是否可调用:
if (function_exists('my_function')) {
my_function();
}
// 方法调用检查
if (is_callable([$object, 'method'])) {
$object->method();
}






