php对象和数组的效率,PHP数组转换为对象的效率?

据我了解,当代码的嵌套深度足够深时,PHP stdClass对象通常比数组要快.如果我正在进行类型转换以动态定义stdClass对象,那么对效率的影响如何:

$var = (object)array('one' => 1, 'two' => 2);

如果执行此操作的代码将多次执行,那么最好将$var显式定义为对象:

$var = new stdClass();

$var->one = 1;

$var->two = 2;

差异可以忽略不计,因为我将以两种方式从那里访问$var作为对象吗?

编辑:

stdClass是我在这里需要的数据类型.我不在乎是否应该使用数组还是应该使用stdClass对象.我更关心使用实例化stdClass的(object)array(….)速记是否有效.是的,这在代码中可能会执行数千次.

解决方法:

你理解错了.对象并不比数组“快得多”.实际上,相反的情况通常是正确的,因为数组不存在继承(和可见性查找)问题.当然,在某些情况下,您可以显示明显的明显损益,但是在一般情况下,阵列往往会更快.

使用语义上正确的工具.不要回避使用数组,因为您认为对象更快.在合理时使用构造.有时候,用对象替换数组是有意义的(例如,当您想严格执行数组中的类型时).但这不是其中之一.即使那样,您也不会用STDClass替换array(),而是将其替换为一个自定义类(一个可能扩展ArrayObject或至少实现Iterator和ArrayAccess接口的类).存在不同的Data Structures是有原因的.如果最好使用对象而不是数组,我们不是都使用对象吗?

不必担心“投放速度更快”之类的微观优化.是almost always not.编写可读,正确的代码.然后优化,如果您遇到问题…

标签:php,arrays,performance,object

来源: https://codeday.me/bug/20191009/1881138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值