Php “错误”;无法将stdClass类型的对象用作数组;从Laravel数据库查询结果访问明显存在的整型数据时

Php “错误”;无法将stdClass类型的对象用作数组;从Laravel数据库查询结果访问明显存在的整型数据时,php,arrays,database,laravel,hashmap,Php,Arrays,Database,Laravel,Hashmap,我从Laravel数据库查询命令获取数据: $group = DB::table('groups')->where("id", $group_id)->first(); 当我转储数据时,我得到: object(stdClass)#200 (7) { ["id"]=> int(1) ["levels_id"]=> int(1) ["title"]=> string(8) "Novice 1" ["description"]=>

我从Laravel数据库查询命令获取数据:

$group = DB::table('groups')->where("id", $group_id)->first();
当我转储数据时,我得到:

object(stdClass)#200 (7) {
  ["id"]=>
  int(1)
  ["levels_id"]=>
  int(1)
  ["title"]=>
  string(8) "Novice 1"
  ["description"]=>
  string(11) "Lorem Ipsum"
  ["max_question_display"]=>
  int(5)
  ["created_at"]=>
  NULL
  ["updated_at"]=>
  NULL
}
我想访问
max\u question\u显示屏
。但当我这样做的时候:

var_dump($group["max_question_display"]);
PHP返回错误
无法将stdClass类型的对象用作数组

当我这样做时:

var_dump($group->max_question_display);
我得到:

int(5)
但是我不想要
int
。我只想要
5
。以整数形式

如果我
foreach
循环
$group

foreach ($group as $t) {
    echo "<pre>";
    var_dump($t);
    echo "</pre>";
}
这显然也不是我想要的结果访问方式

我还尝试获取数组的第一个元素,认为这可能是一个包含1个元素的数组,但这也会引发相同的错误

我知道这个站点关于这个错误的一般答案是“stdClass不是数组”。我浏览了几个标题和我类似的问题,但没有找到来自LaravelDB的对象。当我阅读关于Laravel DB的手册时,我确信我可以访问返回的数据,就像访问一个简单的字典/hashmap一样


编辑:对不起,我理解我非常非常新手的错误。没必要回答这个问题。谢谢。

请注意您的第一个var\u转储的第一行:

var_dump($group->max_question_display);
因为您正在处理对象,所以可以使用
->
访问其属性。当您这样做时:

$group->max_question_display;
在输出中看到
(int)
的原因是
var\u dump
函数在值旁边显示值类型。要访问该值,请执行以下操作:

echo $group->max_question_display; // 5
如果您想在屏幕上看到它而不显示类型,请使用echo

echo $group->max_question_display; // 5

stdClass是一个对象。如果类未实现接口,则不能使用具有数组语法的对象访问其属性

正如@IbrahimLawal所指出的,var_dump同时输出类型和值。只需回显
$group->max\u question\u display
即可提供值


总之:在与stdClass交互时,必须使用箭头语法。

执行
var\u dump
将为您提供类型和值<代码>$group->max\u question\u display是正确的选择。如果你对类型不感兴趣,你可以做一个
echo
。@IbrahimLawal噢,该死的。我理解我的错误。这是var_dump的结果。如果我直接访问变量,我将得到整数。对不起#是的,我一贴出这个问题,它立刻在我的脑海里响起了铃声。我犯了一个多么愚蠢的误会。谢谢我会尽快接受这个答案。@陈立勇,没关系;发生在我们所有人身上。这提醒了我,计算机对我们正在做的事情一无所知。他们只是按照指示去做。我认为你的最后一句话不是你想打字的意思。
echo $group->max_question_display; // 5
echo $group->max_question_display; // 5