我很长一段时间以来一直使用数组来存储相关字段。如果我想要相关的用户字段,我使用:
$user = array(
'id' => 27
'name' => 'Pepe'
);
但最近,我经常使用对象,我更喜欢使用 $user->id 而不是 $user['id']。
我的问题:要实现面向对象的风格,您可以使用 stdClass:
$user = new stdClass();
$user->id = 27;
$user->name = 'Pepe';
或从数组进行转换
$user = (object) array(
'id' => 27
, 'name' => 'Pepe'
);
就性能和风格而言,其中一个比另一个更好,还是您可以模糊地使用您想要的任何东西?
Thanks!
Update:我同意所有的评论,这根本不是 OOP,只是将相关数据分组到一个结构中。我的 $user 示例不是最好的,因为它是使用带有方法、属性、blablabla 的类的典型示例...我问这个是因为我有很多配置结构,例如“initTable”,我想要类似的东西:
$table => page => init => 1
=> end => 25
sort => field => name
=> order => asc
等等,我想知道什么是更好的获取初始化页面:
$table->page->init **OR** $table['page']['init']
基于小测试(http://phpfiddle.org/lite/code/cz0-hyf http://phpfiddle.org/lite/code/cz0-hyf)我可以说使用“new stdClass()”比其他选项慢大约 3 倍。
这很奇怪,但与 stdClass 相比,转换数组的效率非常高。
但这个测试只测量执行时间。它不计量内存。
附:我仅使用 phpFiddle 来共享代码。测试是在我的本地 PC 上完成的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)