PHP - performance and memory issue with global variables

喜夏-厌秋 提交于 2019-12-18 05:18:07

问题


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?


回答1:


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.




回答2:


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

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



来源:https://stackoverflow.com/questions/5341131/php-performance-and-memory-issue-with-global-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!