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中变量和数组的速度的主要内容,如果未能解决你的问题,请参考以下文章

php7新特性

处理大型数组时如何提高php的执行速度?

matlab中,如何加快数据运算速度?

[PHP] PHP7比PHP5数组优化的点

PHP程序写得越多发现响应速度越慢,请问写程序中应该注意些啥?我是新手!怎么提高程序响应时间!

php7和php5区别