从阵列打印值有时不起作用

Alv*_*ker 4 php laravel eloquent laravel-5

这太奇怪了.第一个没有打印,而如果我做一个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);
        }
Run Code Online (Sandbox Code Playgroud)

但这个不是:

        $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);
        }
Run Code Online (Sandbox Code Playgroud)

jed*_*ylo 8

如果传递给die()的值是int,则不会打印它,而是用作执行脚本的进程的返回代码 - 有关详细信息,请参阅http://php.net/manual/en/function.exit.php.

当你将intid连接时:字符串被传递给die()而不是整数,这就是为什么它会导致id:1被打印.


从手册上exit():

如果状态是一个字符串,这个函数打印在退出前的状态.

如果status是整数,则该值将用作退出状态而不打印.退出状态应在0到254范围内,退出状态255由PHP保留,不得使用.状态0用于成功终止程序.

注意:如果PHP> = 4.2.0是整数,则不会打印状态.