我知道你可以像这样创建一个数组:
$a = array();
Run Code Online (Sandbox Code Playgroud)
并向其添加新的名称值对,如下所示:
$a['test'] = 'my new value';
Run Code Online (Sandbox Code Playgroud)
甚至可以省略第一行,虽然做法不好!
我发现对象更容易阅读和理解,所以我所做的是获取名称值对的数组并将其转换为对象:
$a = (object)$a;
Run Code Online (Sandbox Code Playgroud)
因此我可以访问参数:
$a->test;
Run Code Online (Sandbox Code Playgroud)
创建一个数组开始的额外开销似乎很浪费,是否可以简单地创建一个对象,然后以某种方式添加名称值对,就像我对数组一样?
谢谢
是的,这个stdClass课程就是为此而设计的.
$a = new stdClass;
$a->test = 'my new value';
Run Code Online (Sandbox Code Playgroud)
您可以将其视为类似于以下JavaScript代码:
var a = {};
a.test = 'my new value';
Run Code Online (Sandbox Code Playgroud)
实际上,如果您有一些以JSON形式接收数据的PHP代码,则在数据上运行会生成包含属性json_decode()的stdClass对象.