【问题标题】:Build PHP stdClass object simular to an Associative Array构建与关联数组类似的 PHP stdClass 对象
【发布时间】:2017-10-18 18:56:50
【问题描述】:

在不使用循环的情况下,除了

之外,还有哪些其他方法可以构建类似于关联数组的 stdClass 对象?
$obj = (object)[ 'item1' => 1 , 'item2'=> 2 ];

类似于在 Javascript 中创建对象的方式

var obj = { item1 : 1 , item : 2 }

提前谢谢你。

【问题讨论】:

  • 查看 PHP objects 页面...
  • $obj = new stdClass(); $obj->item1 = 1; $obj->item2 = 2;

标签: php object stdclass


【解决方案1】:

根据 Anthony 关于 PHP 手册:

在 PHP 7 中有几种方法可以创建一个空对象:

<?php
$obj1 = new \stdClass; // Instantiate stdClass object
$obj2 = new class{}; // Instantiate anonymous class
$obj3 = (object)[]; // Cast empty array to object

var_dump($obj1); // object(stdClass)#1 (0) {}
var_dump($obj2); // object(class@anonymous)#2 (0) {}
var_dump($obj3); // object(stdClass)#3 (0) {}
?>

如需更多关于他要说的内容,请访问PHP Manual documentation 并附上他的答案。

为了扩展他的答案,第一个看起来像这样:

第一个例子

$obj1 = new \stdClass;
$obj1->first = 1;

print_r($obj1);

// output
// stdClass Object
// (
//     [first] => 1
// )

第二个例子

$obj2 = new class{ };
$obj2->second = 2;

print_r($obj2);

// output
// class@anonymous Object
// (
//     [second] => 2
// )

第三个例子

$obj3 = (object)[];
$obj3->third = 3;

print_r($obj3);

// output
// stdClass Object
// (
//     [third] => 3
// )

您可以按照这些思路做一些事情;就这么简单

【讨论】:

    猜你喜欢
    • 2016-03-29
    • 2014-02-28
    • 2011-01-04
    • 1970-01-01
    • 2012-08-30
    • 2015-05-12
    • 2012-05-28
    • 2014-10-17
    • 2012-11-02
    相关资源
    最近更新 更多