为什么我会从60
获得die()
的输出:
$min = $row['min'];
die($min);
但不是为了这个?
$min = $row['min']*60;
die($min);
答案 0 :(得分:2)
这是因为您应该传递一个字符串:“必需。指定在退出脚本之前要写入的消息或状态编号。状态编号不会写入输出。” 相乘后,将值转换为int类型,因此die不会打印它。
答案 1 :(得分:2)
<强>解决方案强>
如果您需要该值即使它是一个数字,请使用strval将其解析为字符串:
die(strval($min));
<强>文档强>
根据die,等同于退出。
在Exit中我们可以看到它有两个签名:
void exit ( int $status )
和
void exit ([ string $status ] )
两者都描述如下:
如果状态为整数,则该值将用作退出状态 而不是印刷。退出状态应该在0到254的范围内 退出状态255由PHP保留,不得使用。状态0 用于成功终止程序。
和
如果状态为字符串,则此函数会在退出之前打印状态。
(强调我的)
<强>诠强>
在您提问的第一个代码示例中,$row['min']
很可能只是一个字符串(例如string(2) "70"
)。当你将它乘以一个数字时,PHP&#39; casts&#39;数字的值,因此可以乘以。
因此,在第一个示例中,它调用exit ([ string $status ] )
函数,在退出之前打印状态。
在第二个示例中,它调用exit ( int $status )
函数,将用作退出状态而不打印。
如果您想亲自查看,请使用var_dump并检查变量类型。 Check an Example
答案 2 :(得分:1)
die()
函数是exit()的别名。
PHP的文档说明exit()
是polymorphic。也就是说,它可以接受字符串或整数作为唯一的参数。
提供字符串时,会在脚本退出之前打印。
当您提供一个整数(0-254
之间)时,它将用作脚本exit status code并且不会打印任何内容。代码0
表示脚本成功完成,其他任何内容都是错误。代码255
由PHP保留。
您可以使用strval()
或intval()
来确保传递正确的数据类型以满足您的需求。