PHP中的exit和die
PHP中的exit和die
环境:
PHP 8.2.4 (cli) (built: Jul 5 2023 12:08:25) (NTS DEBUG)
- 根据官方文档,die等同于exit
This language construct is equivalent to exit().
语法结构等同于 exit()。请注意,这里用的不是“别名”这个说法,而是直接用了等同。
- exit和die是语法结构而不是函数,所以所以无参数时不需要括号,但使用括号不引发错误。
// 已下语句都是合法的。 exit; exit(); exit('终止'); exit(1); exit(257);
- 退出状态码
可以在
php file.php
之后使用echo $?
命令打印退出状态码。- 无参数使用exit语句,无输出,退出状态码为0;
- 当exit参数为字符串时,打印输出字符串,退出状态码为0;
- 当exit参数为0--255整数时,参数不被打印输出,会做为退出状态码;
- 当参数为整数且超出0--255范围时,取低8位无符号数值作为退出状态码;
exit(-1); //echo $?: 255 exit(257); // echo $?: 1
- 当参数为浮点数,会把参数做为字符串输出,退出状态码为0;
- 当参数为对象、数组或其他数据结构时,我去!@#$%^&*();
- 一般情况不建议使用255做为exit参数,这是php保留的退出状态码;
- 普通情况下退出状态码0表示成功终止程序。
- 抄过来的一段代码,做了一点点微小的修改,供大家参考。
参考:从源码看php中的别名
$arrTokens = token_get_all('<?php exit(34); die ?>'); foreach ($arrTokens as $token) { if (gettype($token) != 'array') { echo $token, PHP_EOL; } else { echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL; } }