PHP 函数
在开发过程中,当你需要多次重复执行某段逻辑时,函数就能派上用场了。通过将代码封装进函数中,你不仅可以提高代码复用性,还可以让代码结构更清晰、可维护性更高。
提示
函数是一段可重复使用的代码块,你可以在程序中任何地方调用它。PHP 内置了大量函数(比如 strlen()
、date()
等),你也可以自己定义函数。
创建函数
你可以使用 function
关键字来定义自己的函数。
语法:
function functionName() {
// 函数体
}
示例:
<?php
function sayHello() {
echo "你好,世界!";
}
sayHello(); // 调用函数
?>
带参数的函数
你可以给函数传递参数(参数在函数定义时指定),这样函数可以处理不同的数据。
语法:
function functionName($param1, $param2) {
// 使用 $param1 和 $param2
}
示例:
<?php
function greet($name) {
echo "你好,$name!";
}
greet("小明");
greet("小红");
?>
带默认参数的函数
如果调用函数时没有提供某个参数,PHP 会使用默认值。
示例:
<?php
function greet($name = "朋友") {
echo "你好,$name!<br>";
}
greet(); // 输出:你好,朋友!
greet("小李"); // 输出:你好,小李!
?>
函数返回值
你可以使用 return
关键字让函数返回一个值,而不是直接输出结果。
示例:
<?php
function add($a, $b) {
return $a + $b;
}
$result = add(3, 5);
echo "结果是:$result";
?>
可变数量的参数
从 PHP 5.6 开始,你可以使用 ...
语法传入任意多个参数。
示例:
<?php
function sum(...$numbers) {
$total = 0;
foreach ($numbers as $num) {
$total += $num;
}
return $total;
}
echo sum(1, 2, 3, 4); // 输出 10
?>
函数的作用域(Scope)
在函数内部定义的变量,默认是局部变量,在函数外部无法访问。若要在函数内部访问全局变量,可以使用 global
关键字或 $GLOBALS
数组。
示例:
<?php
$a = 10;
$b = 20;
function sum() {
global $a, $b;
echo $a + $b;
}
sum(); // 输出 30
?>
递归函数
函数可以自己调用自己,这就是递归函数(Recursive Function)。递归通常用于处理像阶乘、树形结构等问题。
示例:
<?php
function factorial($n) {
if ($n === 0) return 1;
return $n * factorial($n - 1);
}
echo factorial(5); // 输出 120
?>
⚠️ 写递归函数时一定要确保有终止条件,否则会陷入无限循环。
匿 名函数(Closure)
PHP 还支持匿名函数,也叫闭包(Closure),可以用于函数式编程或作为参数传递。
示例:
<?php
$greet = function($name) {
return "你好,$name";
};
echo $greet("小强");
?>