PHP die()与echo的区别

6

请问为什么第一行代码可以正常运行(返回35434),而第二行代码无法正确返回信息?

  1. echo $_FILES['userfile']['size'];
  2. die ($_FILES['userfile']['size']);

谢谢!


这两个是否在完全相同的位置或者在两个不同的页面上?(是的,这是一个愚蠢的问题,但只是为了确保。) - Flipper
3个回答

13

die 相当于 exit,你会注意到 exit 接受一个整数或字符串作为参数。如果传递一个整数,则程序会退出并返回该整数作为其退出代码。

$_FILES['userfile']['size'] 是一个整数而不是字符串,因此它不会将消息输出到屏幕上,而是将大小作为程序的返回代码返回。

一个简单的解决方法是将空字符串连接到变量上,以便让PHP编译器知道您需要一个字符串而不是整数:

die('' . $_FILES['userfile']['size']);

请注意,die() / exit() 的整数参数不能大于254。 - texnic

2

我几个小时前回答了这个问题,无论如何其他答案都是正确的。

作为一种解决方法(如果您需要这样做),将整数转换为字符串即可:

die(strval($_FILES['userfile']['size'])); // or
die((string) $_FILES['userfile']['size']);

1

die() 只打印字符串。(请参阅手册) 如果你在其中添加一些文本,它会出现奇怪的效果。;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接