PHP - 全局变量的性能和内存问题
假设情况: 我正在 php 中运行一个复杂的网站,并且使用了很多全局变量。
我可以将变量存储在现有的全局范围中,例如 $_REQUEST['userInfo']
、$_REQUEST['foo']
和 $_REQUEST[' bar']
等,并将许多不同的东西放入请求范围中(这将是适当的使用,因为这些数据引用请求本身)。
或者
我可以在我的大多数函数中继续使用像 global $userInfo, $foo, $bar;
这样的行。
这两种解决方案是否会影响性能或内存使用量存在差异?
一个更容易输入......那么有最佳实践指南吗?
Hypothetical situation:
I'm running a complex site in php, and i use a lot of global variables.
i could store the variables in an existing global scope, say $_REQUEST['userInfo']
, $_REQUEST['foo']
, and $_REQUEST['bar']
etc. and put a lot of different things into the request scope (which would be appropriate use, as these data refer to the request itself).
or
i could keep using lines like global $userInfo, $foo, $bar;
in most of my functions.
is there a performance hit, or a difference in memory usage for either solution?
one is a little easier to type... so is there a best-practices guideline?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的全局变量已经可以在
$GLOBALS['foo']、$GLOBALS['bar']
等中访问。这在函数作用域内更清楚地表明它们来自全局作用域,而不是使用 <代码>全局关键字。不应以任何有意义的方式影响性能。许多人会告诉您,最佳实践是首先避免全局变量,而是通过函数调用和对象构造函数传递变量。
Your global variables are already accessible in
$GLOBALS['foo'], $GLOBALS['bar']
etc. This is a clearer indication inside function scope that they come from the global scope than using theglobal
keyword. Should not affect performance in any meaningful way.Many will tell you that best practice is to avoid global variables in the first place and instead pass variables through function calls and object constructors.
两者都非常糟糕。我建议使用单例或静态类。
至于内存使用,不会有明显的差异。
Both are pretty bad. I would suggest using a singleton, or static classes.
As for memory uses, there would be no noticable difference.