php,你可能不知道的“死亡”陷阱
程序员文章站
2024-01-23 10:15:04
...
die(time()*1000); 会输出什么? 嗯也许你会说它输出当前时间戳的1000倍。 但是你错了!它并不一定按照你的预期输出正确的。 在32位的操作系统中,它会输出时间戳的1000倍,但在64操作系统中它什么也不会输出。 why?看看手册吧: 如果 PHP 的版本号大于等于
die(time()*1000);
会输出什么?
嗯也许你会说它输出当前时间戳的1000倍。
但是你错了!它并不一定按照你的预期输出正确的值。
在32位的操作系统中,它会输出时间戳的1000倍,但在64操作系统中它什么也不会输出。
why?看看手册吧:
如果 PHP 的版本号大于等于 4.2.0,那么在 die参数是整数的情况下,不会输出该参数。
好吧,在32位操作系统中,time()*1000已经超出了整形的长度,php会将它转化为浮点型输出。
以下是扩展信息:
die是exit的一个别名,而exit并非真正的函数,而是像echo一样是一条语句(a language construct)。前面说到如果函数的参数是整形,它书不会输出的,这是为什么呢?exit表示脚本退出,儿这个整形的参数标识退出的状态,取值从0到255。0表示正常退出,非零标识为错误码。
[php]
//exit program normally
exit;
exit();
exit(0);
//exit with an error code
exit(1);
exit(0376); //octal
[/php]
http://hipop.co.cc/archives/105