无法访问foreach php中的变量值

时间:2016-04-24 10:30:56

标签: php laravel foreach laravel-5

$categories = DB::table('categories')->select('categoryid')->get();
    foreach ($categories as $category) 
      {
         $categoryid = $category->categoryid;
         die($categoryid);//i am getting blank result here
      }

var_dump($category->categoryid);之后 我得到了int(5)

为什么我没有在categoryid中获得5的值?

2 个答案:

答案 0 :(得分:0)

如果查看manual of php,您会发现var_dump会同时显示类型

void var_dump ( mixed $expression [, mixed $... ] )

此功能显示有关包含类型的一个或多个表达式的结构化信息。递归地探索数组和对象,并使用缩进的值来显示结构。

获取int(5)是正常的,这意味着$category->categoryid的类型为int$category->categoryid的值为5

答案 1 :(得分:0)

die()只是exit()的引用。也就是说,死亡和退出都完全相同。

According to the manual for exit():

  

如果status是一个字符串,则此函数在退出之前打印状态。

     

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

因为您输出的是整数,所以它不会显示数字5.相反,您应该执行以下操作:

die((string)$categoryid);

通过将其强制转换为字符串,您强制die构造将值作为字符串输出,而不是将其作为状态代码返回。

另一种选择是echo类别ID,然后退出:

echo $categoryid;
exit