php创建没有类的对象

Wol*_*mec 282 php

可能重复:
在php中创建匿名对象

在JavaScript中,您可以通过以下方式轻松创建没有类的对象:

 myObj = {};
 myObj.abc = "aaaa";
Run Code Online (Sandbox Code Playgroud)

对于PHP,我发现了这个,但它已有近4年的历史了:http: //www.subclosure.com/php-creating-anonymous-objects-on-the-fly.html

$obj = (object) array('foo' => 'bar', 'property' => 'value');
Run Code Online (Sandbox Code Playgroud)

现在在2013年使用PHP 5.4,有替代方案吗?

Art*_*m L 611

你可以随时使用new stdClass().示例代码:

   $object = new stdClass();
   $object->property = 'Here we go';

   var_dump($object);
   /*
   outputs:

   object(stdClass)#2 (1) {
      ["property"]=>
      string(10) "Here we go"
    }
   */
Run Code Online (Sandbox Code Playgroud)

从PHP 5.4开始,您可以获得相同的输出:

$object = (object) ['property' => 'Here we go'];
Run Code Online (Sandbox Code Playgroud)

  • PHP 5.4方法的+1,这使得代码更短,更易读,尤其是当您有几个要添加到对象的项目时. (28认同)
  • 如果您正在考虑将嵌套数组转换为对象,我建议使用`json_decode(json_encode($ array))`将整个数组转换为嵌套的stdClass对象.如果使用`(object)$ array`,它只会将第一层转换为对象,嵌套在其中的所有内容都将保留为数组. (16认同)
  • 另一种方法是使用单个 json_decode 传递 JSON 字符串: $object = json_decode('{"property": {"foo": "bar"}, "hello": "world"}'); (2认同)