函数
这篇讲 PHP 函数的定义与调用,涵盖参数传递、默认值、返回值,以及现代 PHP(7.x+)的类型声明特性。
函数定义与调用
函数是可在程序中重复使用的语句块,只在被调用时执行:
<?php
function sayHi() {
echo "Hello world!";
}
sayHi(); // 调用函数
?>
函数命名规范:
- 以字母或下划线开头(不能以数字开头)
- 函数名不区分大小写(但调用时建议保持一致)
- 函数名应反映其功能
带参数的函数
通过参数向函数传递信息。参数定义在函数名后的括号内,逗号分隔:
<?php
function greet($name, $time) {
echo "Good $time, $name!<br>";
}
greet("Li", "morning");
greet("Wang", "afternoon");
?>
默认参数值
可以为参数指定默认值,调用时未传入该参数则使用默认值:
<?php
function setHeight($minheight = 50) {
echo "The height is: $minheight <br>";
}
setHeight(350); // 使用传入值 350
setHeight(); // 使用默认值 50
?>
有默认值的参数必须放在没有默认值的参数之后,否则 PHP 会报错。
返回值
使用 return 语句让函数返回计算结果:
<?php
function sum($x, $y) {
return $x + $y;
}
echo sum(5, 10); // 输出 15
echo sum(7, 13); // 输出 20
?>
类型声明(PHP 7+)
PHP 7 开始支持标量类型声明,能让函数签名更加明确、减少运行时类型错误:
<?php
// 参数类型声明 + 返回值类型声明
function add(int $a, int $b): int {
return $a + $b;
}
echo add(5, 10); // 15
// add("hello", 10); // 会触发 TypeError
?>
常用的类型声明:
| 类型 | 说明 |
|---|---|
int / float / string / bool | 标量类型 |
array | 数组 |
?int | 可为 null 的整型 |
void | 函数不返回任何值 |
mixed | 任意类型(PHP 8.0+) |
匿名函数
PHP 支持匿名函数(闭包),可以赋值给变量或作为参数传递:
<?php
$greet = function($name) {
echo "Hello $name!";
};
$greet("PHP"); // Hello PHP!
// 作为回调使用
$numbers = [1, 2, 3];
$doubled = array_map(function($n) {
return $n * 2;
}, $numbers);
// $doubled = [2, 4, 6]
?>
类型声明是可选的,但强烈建议在项目和团队协作中使用——它让代码意图更清晰,IDE 也能提供更好的自动补全和错误提示。
一句话小结
函数是代码复用的基本单位。function 关键字定义,return 返回值。PHP 7+ 支持类型声明,能有效减少类型相关的 bug。默认参数必须放在必选参数之后。下一篇讲 数组。
最后更新于