PHP - 全局变量的性能和内存问题

时间:2011-03-17 15:20:44

标签: php performance memory globals

假设情况: 我在php中运行一个复杂的站点,我使用了很多全局变量。

我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo']$_REQUEST['foo']$_REQUEST['bar']等,并在请求范围内添加许多不同的内容(这将是适当使用,因为这些数据是指请求本身。)

我可以在我的大部分功能中继续使用global $userInfo, $foo, $bar;这样的行。

是否存在性能损失,或两种解决方案的内存使用量差异?

一个更容易打字......那么是否有最佳实践指南?

2 个答案:

答案 0 :(得分:8)

您的全局变量已经可以在$GLOBALS['foo'], $GLOBALS['bar']等中访问。这在函数范围内更清楚地表明它们来自全局范围而不是使用global关键字。不应以任何有意义的方式影响绩效。

许多人会告诉你,最好的做法是首先避免全局变量,而是通过函数调用和对象构造函数传递变量。

答案 1 :(得分:5)

两者都很糟糕。我建议使用单例或静态类。

至于记忆用途,没有明显的区别。