我看到了this帖子,但不太明白它并没有完全回答我的问题。此外 - 它似乎表明数组较慢。我想:不能!
当所有其他条件相同时,以及针对速度时,在数组中分配变量的最佳方法是什么?
这样做会更好:
$part1 = "a";
$part2 = "b";
$part3 = "c";
$part4 = "d";
(当然,我知道这不允许你像数组那样与数据交互,但是假设你不需要。)
这样做会更好:
$part[1] = "a";
$part[2] = "b";
$part[3] = "c";
$part[4] = "d";
这样做会更好:
$part = array("a","b","c","d");
还是其他什么?为什么一个比其他人好?后面的机制是什么?
此外 - 它是否取决于分配的元素数量?在谈论多维数组,不同数据类型或不同语言时,答案如何变化?此外,如果我初始化数组然后向其添加元素,它会改变吗?
答案 0 :(得分:0)
无论您如何指定或为其分配变量,数组都是一个数组。一旦你创建了一个数组,就会把它放到记忆中(除非你正在使用SplFixedArray)并且内存中的数组会很快增长。
考虑一下这篇文章,它深入探讨了资源密集型数组的作用:http://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html
来自文章:
在这篇文章中,我想调查PHP数组的内存使用情况(和 一般的值)使用以下脚本作为示例,其中 创建100000个唯一的整数数组元素并测量 导致内存使用:
<?php
$startMemory = memory_get_usage();
$array = range(1, 100000);
echo memory_get_usage() - $startMemory, ' bytes';
您期望它多少钱?简单,一个整数是8个字节(在64位unix上 机器和使用长型)你有100000个整数,所以你 显然需要800000字节。这就像0.76 MB。
现在尝试运行上面的代码。如果你愿意,你可以在线完成。这个 给了我14649024字节。是的,你听到了,这是13.97 MB - 是我们估计的十八倍。