代码如下:
<?php
ignore_user_abort(true);
// 逻辑1
echo "逻辑1执行完毕\n";
sleep(10);
// 逻辑2
echo "done\n";
在cli下执行这个脚本,如果执行完逻辑1
,立刻ctrl+c
取消,结果是不会执行逻辑2
。
官方手册说明:
设置客户端断开连接时是否中断脚本的执行
PHP以命令行脚本执行时,当脚本终端结束,脚本不会被立即中止,除非设置 value 为 TRUE,否则脚本输出任意字符时会被中止。http://php.net/manual/zh/func...
我理解的ignore_user_abort()
这个函数的意思就是,如果传值为true
,那么手动取消ctrl+c
脚本执行时,就算这个脚本只执行了一部分逻辑,所有逻辑也应该执行完毕,现在看应该是错误的,那请问应该怎么理解这个说明呢?
业精于勤,荒于嬉;行成于思,毁于随。