这太奇怪了。第一个没有打印,而如果我附加一些随机文本die
,它会打印id
。有人可以解释一下吗?
这是有效的:
$product_ids = ProductToOption::groupBy('product_id')->get(['product_id']);
foreach($product_ids as $product_id) {
die("id: ".$product_id->product_id);
array_push($filter_array, $product_id->product_id);
}
但这不是:
$product_ids = ProductToOption::groupBy('product_id')->get(['product_id']);
foreach($product_ids as $product_id) {
die($product_id->product_id);
array_push($filter_array, $product_id->product_id);
}
答案 0 :(得分:8)
如果传递给 die()的值是 int ,则不会打印它,而是用作执行脚本的进程的返回码 - 请参阅{{3更多信息。
当您将 int 连接到 id:时,字符串会传递给 die()而不是整数 ,这就是为什么它会导致打印 id:1 。
来自http://php.net/manual/en/function.exit.php上的手册:
如果status是一个字符串,则此函数在退出之前打印状态。
如果状态为
exit()
,则该值将用作退出状态而不打印。退出状态应在0到254范围内,退出状态255由PHP保留,不得使用。状态0用于成功终止程序。注意:PHP> = 4.2.0如果是integer则不会打印状态。