【问题标题】:How can we manipulate std class in php?我们如何在 php 中操作 std 类?
【发布时间】:2010-12-21 07:53:17
【问题描述】:

是否可以像我们为数组一样向标准类添加元素?

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

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

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

【问题讨论】:

  • Stdclass 是空类,类似于 Java 中的 Object

标签: php arrays class std


【解决方案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);

【讨论】:

    【解决方案2】:

    是的,但没有数字索引。

      $a = new stdclass();
      $a->foo = 'item 1';
      $a->bar = 'item 2';
      $a->goobar = array('item1', 'item2');
      var_dump($a);
    

    如果您想要更复杂的场景,请查看ArrayAccessArrayObject

    【讨论】:

      【解决方案3】:

      好吧,documentation 声明:

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

      因此,您可以在 (array) 和 (object) 之间来回转换,以使用带有数组函数的 stdClass 实例。

      【讨论】:

        【解决方案4】:

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

        数组和对象都有其优点,这取决于您要实现的目标。

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

        【讨论】:

          猜你喜欢
          • 2021-05-07
          • 2014-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-01
          • 1970-01-01
          相关资源
          最近更新 更多