除了
之外,还可以使用其他方法构建类似于关联数组的stdClass对象而不使用循环 <dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
类似于如何在Javascript中创建对象
$obj = (object)[ 'item1' => 1 , 'item2'=> 2 ];
提前谢谢。
答案 0 :(得分:1)
据Anthony手册:
在PHP 7中,有几种方法可以创建一个空对象:
const map = new Map();
map.set("RESULT", {name:"Bob"});
map.set("PROVICE", {name:"BC"});
map.set("CITY", {name:"Nanaimo"});
let entries = Array.from(map.entries(), ([prop]) => prop);
console.log(entries);
let prop = "CITY";
console.log(
map.get(entries[entries.indexOf(prop)])
); // `{"name": "Nanaimo"}`
有关他必须说的内容的更多信息,请访问PHP Manual documentation并提供答案。
为了扩展他的答案,第一个看起来像这样:
第一个例子
<?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) {}
?>
第二个例子
$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
// )
你可以沿着这些方向做点什么;它就像那样容易