【发布时间】:2013-12-03 21:57:02
【问题描述】:
我正在编写一个函数,该函数将一组值返回给调用者。假设数组是:
$arr['keyN'] = $valueN;
如果任何 '$keyN' 没有值;它的值输入为零。
我的问题纯粹是从性能的角度来看:给键值零或根本不给它任何值并让调用者测试它的存在是否更好 if(isset($arr[$keyN ]))....然后执行代码?
我问这个的原因是因为给数组键一个零值会消耗主内存,测试它的存在会消耗 CPU 周期。那么是占用一些内存空间(零值)还是不为键分配任何东西并让代码测试它的存在会更好吗?
【问题讨论】:
-
不是C语言吧?
-
它可以是任何语言....但插图是用 PHP 编写的
-
与性能无关,但是...持续检查是否存在 VALID 值是多余的,并且可能会导致相当多的代码膨胀(并且容易出错?),具体取决于您的用例。因此,我建议为数组中的每个元素设置一个默认值。
-
这听起来像是过早的优化。空间和时间优化之间的困境是正确的,但答案是特定于您的应用程序:您希望它更快,还是消耗更少的资源?恕我直言,您应该“优化”可读性和可维护性。
标签: php arrays optimization