欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php,你可能不知道的“死亡”陷阱

程序员文章站 2022-05-06 14:56:02
...

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