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

发布于 2024-10-23 14:50:57 字数 367 浏览 3 评论 0原文

假设情况: 我正在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥抱没勇气 2024-10-30 14:50:57

您的全局变量已经可以在 $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 the global 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.

半衬遮猫 2024-10-30 14:50:57

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

至于内存使用,不会有明显的差异。

Both are pretty bad. I would suggest using a singleton, or static classes.

As for memory uses, there would be no noticable difference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文