在PHP中处理全局变量的最有效方法是什么?

not*_*ser 5 php globals

似乎有些人讨厌全局变量,但如果你能解释如何在没有它们的情况下进行编码,那我就全都耳朵了.

否则,我有几个选择,我很好奇哪个是最好的长期.考虑一下我有一个不会在持续时间内改变的变量.这是一个静态的全球性.我可以用:

$_SESSION['var'] = constantval;
define('var', constantval);
var = constantval;
Run Code Online (Sandbox Code Playgroud)

而我真正好奇的是:

function my_constants($which)
{
    switch ($which) {
        case 'var':
            return 'constantval';
    }
}
Run Code Online (Sandbox Code Playgroud)

在最后一个中,目标是保持变量超出全局范围,以牺牲一些处理器成本来节省内存.节省的内存值得循环吗?各种其他类型的全球宣言之间是否存在值得注意的差异?

Gui*_*ehn 3

由于内存使用或处理器成本,全局变量不被认为是不好的做法。这是因为允许程序的任何部分修改它们可能会导致问题。随着时间的推移,很难理解程序的哪些部分读取或写入全局变量。