阵列中的打印值有时无法正常工作

时间:2015-12-09 13:08:17

标签: php laravel laravel-5 eloquent

这太奇怪了。第一个没有打印,而如果我附加一些随机文本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);
        }

1 个答案:

答案 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则不会打印状态。