php中变量和数组的速度
Posted
技术标签:
【中文标题】php中变量和数组的速度【英文标题】:The speed of variables vs arrays in php 【发布时间】:2018-07-28 01:45:29 【问题描述】:我有一个愚蠢的问题。我只是想知道。虽然我有时倾向于编码,但如果我有很多与特定实体相关的变量,则使用键值对创建一个关联数组来定义这些实体。
我想知道的是,我知道它们都保存在内存中,但哪种方法更小/更快,创建一些变量或使用变量的键和值创建一个数组
以下是一些示例:
$apples = 'apples';
$grapes = 'some grapes';
$bananas = 'lots of bananas';
$fruits = ['apples' => 'apples', 'grapes' => 'some grapes', 'bananas' => 'lots of bananas'];
我将使用它来遍历数据库中的条目并定义值以填充到我的标记中。
【问题讨论】:
这和你之后想做什么有关。 你应该检查这个:***.com/a/14337876/1485183 速度或内存消耗的差异无关紧要,不用担心。担心对远程服务器的请求、数据库查询、文件系统访问。 感谢您的快速回复,我会尽快更新我的问题 如果你有相关的值要存储,数组可能很有意义。如果你想迭代值,那么数组就是方法。 【参考方案1】:速度和记忆力可能无关紧要。编写干净、直接的代码。
如果您要迭代或搜索这些值,请使用数组。
作为基本规则,我不声明一次性变量。只有在可读性显着提高的边缘情况下,我才会打破这条规则。
【讨论】:
这些值是在循环内部填充的,这是否适合数组而不是变量? 我说是的。使用数组将使代码更简洁、更易于阅读和更易于维护。这个我说一般。我必须查看实际代码才能确认。还有一点是:不要声明一次性变量。 感谢@mickmackusa 非常感谢!【参考方案2】:在 php 中使用数组可能比变量慢。但是,这不值得研究。而是专注于可读性。
【讨论】:
【参考方案3】:让我们试试
测试 1
有 6 个 PHP 变量
$makevar1 = 'checkspeed';
$makevar2 = 'checkspeed';
$makevar3 = 'checkspeed';
$makevar4 = 'checkspeed';
$makevar5 = 'checkspeed';
$makevar6 = 'checkspeed';
print_r(memory_get_usage());
结果是 458056
测试 2
有 6 个数组键
$makevar = array();
$makevar['var1'] = 'checkspeed';
$makevar['var2'] = 'checkspeed';
$makevar['var3'] = 'checkspeed';
$makevar['var4'] = 'checkspeed';
$makevar['var5'] = 'checkspeed';
$makevar['var6'] = 'checkspeed';
print_r(memory_get_usage());
结果是 459168
最终结果:访问变量比访问数组快。
【讨论】:
感谢您的回复。从技术上讲,您的测试表明变量会导致更少的内存使用而不是使用速度。以上是关于php中变量和数组的速度的主要内容,如果未能解决你的问题,请参考以下文章