PHP数组与PHP常量?

时间:2010-01-17 05:50:33

标签: php arrays constants

我很好奇,是否有任何性能提升,例如在PHP中使用更少的内存或资源:

将50个不同的设置变量保存到数组中,如下所示

$config['facebook_api_secret'] = 'value here';

或者将50个不同的设置变量保存为常量,如此

define('facebook_api_secret', 'value here');

4 个答案:

答案 0 :(得分:11)

我认为这是一个微优化的领域。也就是说,差异足够小,为了性能,不值得使用一种解决方案而不是另一种解决方案。如果性能对您的应用程序至关重要,那么您就不会使用PHP! : - )

使用更方便或更有意义的东西。我将配置数据放入常量只是因为在加载配置文件后不应该允许它们更改,这就是常量的用途。

答案 1 :(得分:3)

在我的非正式测试中,我实际上发现访问/定义常量比普通变量/数组慢一点。

无论如何,它不会有所不同;很可能无论你用这些做什么都会在千分之一秒内发生。

从长远来看,优化数据库(索引,使用EXPLAIN检查查询)和服务器设置(使用APC)将会产生更大的影响。

答案 2 :(得分:1)

使用不同编码技术/巧妙编程技巧的50个变量的性能提升是在PHP中做事的错误方法。永远记住:优化器比你更聪明

答案 3 :(得分:1)

对于其中任何一种,您都不会获得任何性能提升。真正的问题是哪一个更有用。

对于定义一次的标量值(字符串,整数等),永远不应该更改,并且需要在整个地方都可以访问,您应该使用常量。

如果您有某种复杂的嵌套配置,例如:

$config->facebook->apikey = 'secret_key';
$config->facebook->url = 'http://www.facebook.com';

您可能希望使用由许多框架之一提供的数组或配置API(Zend_Config并不错)