PHP 函数使用 function 关键字定义。现代 PHP 支持参数和返回值上的 类型声明、默认值 和可变参数 — 使函数更健壮且易于理解。
具有类型声明的基本函数
php
{
+ ;
}
{
;
}
();
(, );
类型声明(int $a、: int 返回类型)让 PHP 检查参数和返回类型 — 捕获错误并说明意图。默认值使参数可选。
function find(?int $id): ?User { // ? = nullable (int|null, User|null)
return $id ? lookup($id) : null;
}
function process(int|string $input): void { // union type — int OR string (PHP 8)
// ...
}
?Type 允许 null;联合类型(int|string,PHP 8)允许多种类型 — 使签名更精确。
function sum(int ...$numbers): int { // variadic — any number of int args
return array_sum($numbers);
}
sum(1, 2, 3); // 6
// named arguments (PHP 8) — pass by parameter name, skip optional ones
greet(name: "Ann", greeting: "Hey");
<?php
declare(strict_types=1); // at the top of the file — enforce STRICT type checking
add("5", 3); // ❌ TypeError with strict_types (without it, "5" would coerce to 5)
declare(strict_types=1) 使类型声明严格 — PHP 拒绝不匹配的类型而不是默认强制转换,这是捕获错误的现代推荐做法。
理解现代 PHP 函数定义 — 特别是 类型声明 — 对于编写健壮、可维护的代码很重要,并反映了 PHP 从其松散类型的起源有多么深远的发展。
有类型的参数和返回值(加上可空类型和联合类型)使函数自我说明,让 PHP 捕获类型错误,而默认值、命名参数和可变参数提供灵活、易读的签名。
最重要的现代做法是 declare(strict_types=1),它强制严格的类型检查(拒绝不匹配而不是默认强制转换) — 这是及早捕获错误和编写可靠代码的关键工具。
了解如何定义类型良好的函数与默认值,以及使用严格类型,是专业现代 PHP 开发的日常知识,区分了坚实的、类型安全的代码与较旧 PHP 的松散类型风格。