[英]What am I doing wrong in declaring an array of objects in php?
This might be something too obvious, but I am kind of brain dead at the moment. 这可能是显而易见的事情,但此刻我脑子里已经死了。
$sizeArr = array({
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
},
{
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
});
i want it to be accessed like $sizeArr[0]->name
, but I am getting an error saying Unexpected {
. 我希望它像
$sizeArr[0]->name
一样被访问,但是我收到一个错误,说出了Unexpected {
。
What am I doing wrong? 我究竟做错了什么?
You can't use {}
to define objects in PHP like you would in JavaScript (which I'm assuming you're familiar with). 您不能像在JavaScript中那样使用
{}
来定义PHP中的对象(我假设您熟悉它)。
In PHP objects and arrays are both array
s - yes, this does give problems if you're serialising to JSON. 在PHP中,对象和数组都是
array
- 是的,如果您要序列化为JSON,这确实会产生问题。
So: 所以:
$sizeArr = array(array(
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
),
array(
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
));
You must convert your array: 你必须转换你的数组:
$yourArray = array (
'item1' => 'Apple',
'item2' => 'Peach'
);
$p = (object) $yourArray;
print $p->item1;
For multidimensional Arrays, have a look here: http://www.richardcastera.com/blog/php-convert-array-to-object-with-stdclass 对于多维数组,请看这里: http : //www.richardcastera.com/blog/php-convert-array-to-object-with-stdclass
you can't use {}
for this but you can try this 你不能使用
{}
但你可以尝试这个
(object)
is for convert array
to object
(object)
用于将array
转换为object
$sizeArr = array(
(object)array(
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
),
(object)array(
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
)
);
echo $sizeArr[0]->name;
$sizeArr
structure print_r($sizeArr);
$sizeArr
结构print_r($sizeArr);
output 产量
Array
(
[0] => stdClass Object
(
[name] => 18"x24"
[wd] => 18
[ht] => 24
[price] => 99
)
[1] => stdClass Object
(
[name] => 24"x36"
[wd] => 24
[ht] => 36
[price] => 189
)
)
output: 输出:
18"x24"
$sizeArr = array(
(object)array("name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00),
(object)array("name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00)
);
$sizeArr[0]->name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.