gpt4 book ai didi

php - 什么是更好的 stdClass 或(对象)数组来存储相关数据?

转载 作者:IT王子 更新时间:2023-10-28 23:53:35 25 4
gpt4 key购买 nike

很长一段时间以来,我一直在使用数组来存储相关字段。如果我想拥有相关的用户字段,我使用了:

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

按性能和风格的顺序,其中一个比另一个更好,还是您可以模糊地使用您想要的任何东西?

谢谢!

更新:我同意所有评论,这根本不是 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),我可以说使用“new stdClass()”比其他选项慢大约 3 倍。

这很奇怪,但是与 stdClass 相比,转换数组的效率非常高。

但是这个测试只测量执行时间。它不计量内存。

附言我使用 phpFiddle 只是为了共享代码。测试是在我的本地 PC 上完成的。

关于php - 什么是更好的 stdClass 或(对象)数组来存储相关数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com