假设情况: 我在php中运行一个复杂的站点,我使用了很多全局变量。
我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo']
,$_REQUEST['foo']
和$_REQUEST['bar']
等,并在请求范围内添加许多不同的内容(这将是适当使用,因为这些数据是指请求本身。)
或
我可以在我的大部分功能中继续使用global $userInfo, $foo, $bar;
这样的行。
是否存在性能损失,或两种解决方案的内存使用量差异?
一个更容易打字......那么是否有最佳实践指南?
答案 0 :(得分:8)
您的全局变量已经可以在$GLOBALS['foo'], $GLOBALS['bar']
等中访问。这在函数范围内更清楚地表明它们来自全局范围而不是使用global
关键字。不应以任何有意义的方式影响绩效。
许多人会告诉你,最好的做法是首先避免全局变量,而是通过函数调用和对象构造函数传递变量。
答案 1 :(得分:5)
两者都很糟糕。我建议使用单例或静态类。
至于记忆用途,没有明显的区别。