【发布时间】:2011-06-05 10:26:24
【问题描述】:
据我了解,PHP stdClass 对象通常比数组快,因为代码嵌套的深度足以使其真正发挥作用。如果我在进行类型转换以动态定义 stdClass 对象,那么效率会受到怎样的影响:
$var = (object)array('one' => 1, 'two' => 2);
如果这样做的代码要执行很多次,我最好将$var明确定义为一个对象:
$var = new stdClass();
$var->one = 1;
$var->two = 2;
差异是否可以忽略不计,因为我将从那里作为对象访问$var,无论哪种方式?
编辑:
stdClass 是我在这里需要的数据类型。我不关心是否应该使用数组或是否应该使用 stdClass 对象;我更关心使用(object)array(....) 实例化stdClass 的速记是否有效。是的,这是在可能被执行数千次的代码中。
【问题讨论】:
-
stdClass 不是数组的替代品。请尝试使用 ArrayObject。此外,“更快”是相对的,在大多数情况下实际上是无关紧要的。
标签: php arrays object performance