2

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

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

或者

global $userInfo, $foo, $bar;我可以像我的大多数功能一样继续使用线条。

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

一个更容易输入......那么有最佳实践指南吗?

4

2 回答 2

8

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

许多人会告诉您,最佳实践是首先避免使用全局变量,而是通过函数调用和对象构造函数传递变量。

于 2011-03-17T15:24:01.173 回答
5

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

至于内存使用,不会有明显的区别。

于 2011-03-17T15:24:25.207 回答