如何解决php中不能将stdClass类型的对象用作数组错误

如何解决php中不能将stdClass类型的对象用作数组错误,php,arrays,Php,Arrays,你好,朋友,这是我的代码 foreach ($pageList as $page) { echo var_dump($page); } 这是我使用var_dump的输出 array(1) { [0]=> object(stdClass)#41 (2) { ["access_token"]=> string(182) "long string goes here" ["id"]=> string(15) "849929535061042" } } 我想以变量的形式获

你好,朋友,这是我的代码

foreach ($pageList as $page) {
    echo var_dump($page);
}
这是我使用var_dump的输出

array(1) { [0]=> object(stdClass)#41 (2) { ["access_token"]=> string(182) "long string goes here" ["id"]=> string(15) "849929535061042" } } 

我想以变量的形式获取访问令牌和id,比如$page['access\u token']=$pageaccesstoken;。如何从该输出中执行此操作。

@CollinD几乎是正确的,您确实需要使用箭头运算符,但您应该在数组的第0个元素上执行此操作

让我们看看您的var_dump输出:

array(1) { [0]=> object(stdClass)#41 (2) { ... } } 
这意味着$page实际上是一个大小为1的数组,第0个元素是stdClass的对象,而这个类有两个字段

字段名为access_token和id。要访问access_token,您需要编写:

$page[0]->access_token;

你应该那样用

                  `foreach ($pageList as $page) {
                       $arr = json_encode($page,true);
         $arr1 = json_decode($arr,true);
              //print_r($arr1);

              $pageaccesstoken=@$arr1[0]['access_token'];
  $id=@$arr1[0]['id'];`

访问页面id和访问令牌。

$page->access\u令牌和$page->id?它给我错误警告:如果我使用$page[0],尝试分配非对象的属性->access_标记输出是致命错误:无法将stdClass类型的对象用作数组。我要做什么do@willyadams请您再次检查:1您是否已将for循环正确复制到此问题中;2您是否已将var_dump的结果正确复制到此问题中。我请求的原因是,如果您的$page实际上不是数组,并且您的问题清楚地表明它是一个数组,那么您获得此错误的唯一方法是。先生,我回显$page[0]是对的->access\u token它给了我一个错误,在我所做的事情中不能使用stdClass类型的对象作为数组。@willyadams您能在您的问题中检查1吗?您的循环与您发布的完全一样。2在您的问题中,循环的输出与您发布的完全相同。获取无法将stdClass类型的对象用作数组错误的唯一原因是它不是数组,并且您的输出显示它是数组。