exit用于终止当前脚本执行而非整个php进程,立即停止后续代码、执行shutdown函数、返回状态码(0表示成功),但不关闭web服务器或数据库连接。

exit 函数在 PHP 中用于立即终止当前脚本的执行,它不会结束整个 PHP 进程(比如 Web 服务器进程或 CLI 进程本身),而是停止当前请求/脚本的运行,并返回控制权给调用者(如 Web 服务器或 shell)。
exit 的基本用法和效果
调用 exit(或其别名 die)后,PHP 会:
- 立即停止后续所有代码的执行(包括函数、循环、条件判断等)
- 执行已注册的 register_shutdown_function 回调(如果存在)
- 释放当前脚本占用的内存(变量、对象等)
- 向调用方返回一个可选的退出状态码(整数,通常 0 表示成功,非 0 表示异常)
exit 不会终止的“进程”
需要特别注意:exit 不会杀死 PHP 解释器进程,也不会关闭 Web 服务器(如 Apache/Nginx)、数据库连接进程或其它并发请求。例如:
- 在 Apache 的 mod_php 模式下,每个 HTTP 请求由一个独立的 PHP 执行上下文处理,exit 只退出当前请求,Apache 进程继续运行
- 在 PHP-FPM 中,exit 终止的是当前 worker 进程中本次请求的脚本,该 worker 可能马上处理下一个请求
- CLI 脚本中 exit 退出的是当前脚本进程,但终端 shell 仍正常运行
常见使用方式与注意事项
你可以用以下形式调用 exit:
- exit; —— 默认退出状态为 0
- exit(0); 或 exit(1); —— 显式指定状态码(对 CLI 脚本尤其重要)
- exit('error message'); —— 输出字符串并退出(等价于 echo + exit(1),状态码默认为 1)
注意:传递字符串时,PHP 会先输出该字符串再退出;而传递数字时仅作为退出状态,不输出内容。
与真正“终止进程”的区别
如果你需要强制终止整个 PHP 进程(极少见,一般不推荐),不能靠 exit 实现。例如:
- CLI 下可用 posix_kill(getmypid(), SIGKILL);(需 posix 扩展,且有风险)
- Web 环境中无法也不应强行杀掉服务器进程——这会导致服务中断
- 真正需要的是逻辑控制:用 exit 快速响应错误、权限拒绝、调试中断等场景
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











