我们如何在php中操作std类?

时间:2010-12-21 07:53:17

标签: php arrays class std

是否可以像对数组那样向stdclasses添加元素?

Array (
  [0] => item 1
  [1] => item 2
)

Stdclass (
  [0] => item 1
  [1] => item 2
)

与数组相比,操作对象通常更难吗?因为我们有很多数组函数可以使用等等。

4 个答案:

答案 0 :(得分:1)

当然,你可以添加新元素......

$Object = new StdClass();
$Object->item1 = 1;
$Object->item2 = 2;

如果要将对象作为数组进行迭代,则应使用PHP SPL ArrayIteratorRecursiveArrayIterator

此外,您可以使用类型转换从数组移动到对象并返回...

$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);

如果您想要更复杂的方案,请查看ArrayAccessArrayObject

答案 2 :(得分:0)

嗯,documentation州:

  

通过类型转换为对象创建。

因此,您可以在(数组)和(对象)之间来回转换,以使用数组函数处理stdClass实例。

答案 3 :(得分:0)

操纵起来并不困难。我只想说count和array_search之类的东西不能用于对象。

数组和对象都有它们的好处,这取决于你想要实现的目标。

http://php.net文档将说明可以将哪些数据类型传递给哪些函数。