Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php stdClass vs数组。推荐哪一种?_Php_Mysql_Arrays_Stdclass - Fatal编程技术网

Php stdClass vs数组。推荐哪一种?

Php stdClass vs数组。推荐哪一种?,php,mysql,arrays,stdclass,Php,Mysql,Arrays,Stdclass,建议在哪里使用其中一个?我想存储数据库中列出的文章中的数据 这是一个简单的问题: echo $Datastore->name; //I like it works with foreach //vs echo $Datastore['name']; 哪一个是最好的?stdClass和array获取元素的速度有什么区别吗?有一个类似的问题什么是更好的stdClass或(对象)array来存储相关数据? 基于小测试()我可以说 使用“new stdClass()”的速度大约是其他方法的3

建议在哪里使用其中一个?我想存储数据库中列出的文章中的数据

这是一个简单的问题:

echo $Datastore->name; //I like it works with foreach

//vs

echo $Datastore['name'];

哪一个是最好的?
stdClass
array
获取元素的速度有什么区别吗?

有一个类似的问题什么是更好的stdClass或(对象)array来存储相关数据?

基于小测试()我可以说 使用“new stdClass()”的速度大约是其他方法的3倍 选项

这很奇怪,但与之相比,铸造阵列的效率非常高 到stdClass

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

另外,我使用phpFiddle只是为了共享代码。测试是在我所在的地方进行的 个人电脑

你可以看到这个结论:

  • 对于数组,PHP5.5比PHP5.4快,对于对象,速度几乎相同
  • 由于PHP5.5和数组的优化,类比数组慢
  • stdClass是邪恶的
  • 类仍然比数组使用更少的内存。(大约减少30-40%!!)
  • SplFixedArray类似于使用类,但它使用更多内存

  • 以基于意见的方式结束,但就我个人而言,我更喜欢数组,因为有很多有用的数组函数,你无法在stdclass上使用。@kau lin你到底在说什么?使用数组或对象不是过程性的面向对象编程。请不要在这类事情上混淆人们。@PhilSturgeon:我的表述不正确,很抱歉b:)我强烈反对结束这个问题。也许它有点太宽泛了,但我把它解读为“使用assoc数组而不是stdClass的优点和缺点是什么?”我很抱歉有人因为不喜欢或无法提供有意义的答案而关闭了这个问题。在一个模糊的领域,人们的意见会交叉到一个关于优缺点的辩论上。它们都是理解内容的关键,因为它提出了各种重要的促成因素。我强烈反对Stackoverflow关闭自以为是问题的策略。您可以将true作为第二个参数传递给json_decode,以将结果作为数组而不是stdClass返回。在我的场景中,我将JSON写入一个文件,然后在下一次执行时对其进行解析,但数组函数在stdClass go figure上不起作用。。。