是否可以像对数组那样向stdclasses添加元素?
Array (
[0] => item 1
[1] => item 2
)
Stdclass (
[0] => item 1
[1] => item 2
)
与数组相比,操作对象通常更难吗?因为我们有很多数组函数可以使用等等。
答案 0 :(得分:1)
当然,你可以添加新元素......
$Object = new StdClass();
$Object->item1 = 1;
$Object->item2 = 2;
如果要将对象作为数组进行迭代,则应使用PHP SPL ArrayIterator或RecursiveArrayIterator。
此外,您可以使用类型转换从数组移动到对象并返回...
$array = array('item1', 'item2');
$Object = (object)$array;
var_dump($object);
$array = (array)$Object;
var_dump($array);
答案 1 :(得分:0)
是的,但没有数字索引。
$a = new stdclass();
$a->foo = 'item 1';
$a->bar = 'item 2';
$a->goobar = array('item1', 'item2');
var_dump($a);
如果您想要更复杂的方案,请查看ArrayAccess和ArrayObject。
答案 2 :(得分:0)
答案 3 :(得分:0)
操纵起来并不困难。我只想说count和array_search之类的东西不能用于对象。
数组和对象都有它们的好处,这取决于你想要实现的目标。
http://php.net文档将说明可以将哪些数据类型传递给哪些函数。