PHP函数必须用function关键字定义,区分大小写且不可与内置函数同名;函数名以字母或下划线开头,支持默认参数(须置末位),return可返回值或null;作用域内变量需global/static/use显式引入;PHP7+类型声明更严格,PHP8支持联合类型,重复定义或使用保留字将报错。

PHP 创建函数必须用 function 关键字开头,函数名区分大小写,且不能与内置函数同名(比如 print、array_merge)。
函数定义的基本语法结构
最简形式是 function + 函数名 + 括号 + 花括号。参数可选,返回值可选,但花括号不能省略。
- 函数名必须以字母或下划线开头,后续可跟字母、数字、下划线(如
my_func2合法,2func非法) - 参数列表中多个参数用逗号分隔,支持默认值(如
$name = 'guest'),但带默认值的参数必须放在最后 - 函数体内可以使用
return提前退出并返回值;无return或只写return;则返回null
function greet($name, $greeting = 'Hello') {
return $greeting . ', ' . $name . '!';
}
echo greet('Alice'); // Hello, Alice!
函数作用域与变量可见性
PHP 函数内部无法直接访问外部变量,除非显式使用 global、static 或传参方式引入。
-
global $var可读写全局变量,但容易引发维护问题,不推荐频繁使用 -
static $count = 0让变量在多次调用间保留值,仅初始化一次 - 闭包(anonymous function)可用
use绑定外部变量,如function() use ($config) { ... }
$counter = 0;
function increment() {
static $count = 0;
$count++;
return $count;
}
echo increment(); // 1
echo increment(); // 2
常见错误与兼容性注意点
PHP 7+ 对函数定义更严格,尤其在类型声明和返回值声明上容易报错。
MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。MATLAB基础知识;命令窗口是用户与MATLAB进行交互作业的主要场所,用户输入的MATLAB交互命令均在命令窗口执行。 感兴趣的朋友可以
立即学习“PHP免费学习笔记(深入)”;
- 启用严格模式(
declare(strict_types=1);)后,类型不匹配会抛Fatal error,而非静默转换 - PHP 8 开始支持联合类型(如
function foo(): int|string),但 PHP 7.4 不支持,需留意部署环境 - 函数名不能是 PHP 保留字(如
class、function、echo),否则解析失败 - 重复定义同名函数(即使在不同文件)会触发
Fatal error: Cannot redeclare,应配合function_exists()检查
if (!function_exists('safe_json_encode')) {
function safe_json_encode($data) {
return json_encode($data, JSON_UNESCAPED_UNICODE);
}
}
函数命名是否清晰、参数顺序是否符合直觉、是否过度依赖全局状态——这些比语法正确与否更容易影响长期协作和调试效率。










