本文目录导读:

- 如何设置退出码
- 常见的退出码约定(Unix/Linux / shell 标准)
- 在 PHP 中实际使用示例
- PHP 中退出码的数值限制
- 在 Web SAPI(Apache/Nginx)中使用退出码
- 退出码与错误处理陷阱
在 PHP 中,“退出码”(Exit Code / Exit Status)是一个整数,用于在 CLI(命令行)模式下向操作系统或调用它的父进程(如 Shell、CI 系统)返回执行结果。Web 模式下通常不使用退出码(浏览器不关心这个)。
如何设置退出码
使用 exit() 或 die() 函数,传入一个整数参数即可:
<?php // 正常退出 exit(0); // 或者表示出错的退出码 exit(1);
注意:如果不传参数,默认退出码为
0,如果传入非整数(如字符串),PHP 8.0+ 会报弃用警告(Deprecated),实际会强制转为0。
常见的退出码约定(Unix/Linux / shell 标准)
| 退出码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 一般错误(未分类错误) |
| 2 | 错误使用命令/参数 |
| 126 | 命令不可执行 |
| 127 | 命令未找到 |
| 128 | 无效的退出参数 |
| 130 | 脚本被 Ctrl+C 终止 |
| 255 | 退出码超出范围(PHP中有限制) |
如果你自己编写脚本,0 = 成功,非0 = 某种错误 是基本规则。
在 PHP 中实际使用示例
示例1:检查某个条件,返回不同退出码
<?php
$file = 'config.php';
if (!file_exists($file)) {
fwrite(STDERR, "错误:配置文件不存在\n");
exit(1); // 返回 1 表示一般错误
}
// 加载配置成功
exit(0);
示例2:在 Shell 中判断执行结果
php myscript.php
if [ $? -eq 0 ]; then
echo "执行成功"
else
echo "执行失败,退出码: $?"
fi
是 Shell 中上一个命令的退出码。
PHP 中退出码的数值限制
- PHP 内部只支持 0 ~ 255 的整数。
- 如果你传入
exit(256),实际会被截断为0(二进制只会保留低 8 位)。 - 传入负数会有不可预测的行为,建议只用 0 ~ 255。
在 Web SAPI(Apache/Nginx)中使用退出码
Web 环境下,exit() 不会向浏览器发送退出码,而只是停止脚本执行,如果你想在 Web 响应中传递“状态”,应该使用 HTTP 状态码(如 http_response_code(404)),而不是退出码。
退出码与错误处理陷阱
- 使用
exit(1)并不会触发 PHP 的错误处理机制(如set_error_handler)。 - 想精确表示不同类型的错误,可以自己定义退出码映射(1 = 文件不存在,2 = 数据库连接失败,3 = 参数错误等),这样外部调用脚本就能根据退出码做不同处理。
| 用法 | 含义 |
|---|---|
exit(0); |
正常退出,成功 |
exit(1); |
一般错误 |
exit(2); |
参数错误等 |
exit(255); |
最大值(再大就截断) |
exit; / exit(); |
默认退出码 0 |
在编写 CLI 工具、定时脚本、CI/CD 流程中,正确使用退出码是对调用者的基本尊重。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播