您的位置:首页 > 编程语言 > PHP开发

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

2012-06-02 14:07 281 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: