为什么脚本没有显示“致命错误:最大执行时间为XX秒”


Why the script does NOT show "Fatal error: Maximum execution time of XX seconds"?

我想知道为什么php(我使用5.5)没有停止这个脚本致命的错误。谢谢。

<?
set_time_limit(5);
ini_set('max_execution_time', 5);
echo 'hi';
for ($i = 0; $i < 10; $i++){
    sleep(1);
}
echo '<br>bye';
?>

脚本的输出是:

hi<br>bye

没有任何错误或警告

从PHP文档:

set_time_limit()函数和配置指令max_execution_time只影响脚本本身的执行时间。在脚本执行之外发生的任何活动上花费的时间,例如使用system()的系统调用,流操作,数据库查询等,在确定脚本运行的最大时间时不包括在内。这在Windows上是不成立的,因为所测量的时间是真实的。

解释一下这个文档的答案,它基本上意味着sleep()在Linux中不是一个耗时的函数。

Sleep();在linux上不按最大执行时间计算,请参阅此处的用户贡献和相同问题的答案