在数据结构中添加stdClass对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数据结构中添加stdClass对象相关的知识,希望对你有一定的参考价值。

stdClass::__set_state(array(
   'zone1' => 
  array (
    0 => 
    stdClass::__set_state(array(
       'id' => '123',
       'owner' => '234',
       ...
    )),

我的基础知识有点儿,所以我遇到了麻烦......我需要创建上面的结构,但我不知道如何......

答案
$a = new stdclass;
$a->zone1 = array();
$a->zone1[0] = new stdclass;
$a->zone1[0]->id = "123";
$a->zone1[0]->owner = "234";

或者,依赖于在将数组转换为对象时将数组转换为stdClass对象的事实:

$a = (object) array(
    "zone1" => array(
       (object) array("id" => "123", "owner" => "234"),
    ),
);

为此,var_export给出:

stdClass::__set_state(array(
   'zone1' => 
  array (
    0 => 
    stdClass::__set_state(array(
       'id' => '123',
       'owner' => '234',
    )),
  ),
))

请注意,Daniel已经指出,stdClass实际上并没有__set_state方法。我认为你只是通过给出var_export的输出来举例说明变量的结构。应该使用serialize进行序列化。

以上是关于在数据结构中添加stdClass对象的主要内容,如果未能解决你的问题,请参考以下文章

PHP new StdClass() 创建空对象

stdClass 标准

使用Twitter API搜索推文时,“无法使用stdClass类型的对象作为数组”错误

迭代数据时,Laravel 无法将 stdClass 类型的对象用作 Job 的数组 [重复]

类 stdClass 的对象无法转换为字符串

如何在创建对象时为 stdClass 对象设置属性