在PHP中正确使用Variable Scope

Xhy*_*ynk 4 php variables scope global-variables

我有一些变量需要访问比我最初想象的更多的函数.

将它们包含在我不断增长的功能列表中的最佳方法是什么?

我有类似的东西

$site = 'a';
$admin = 'b';
$dir = 'c';
$ma_plug = 'd';
$base = 'e';
//Etc.
Run Code Online (Sandbox Code Playgroud)

我需要大量的功能,几乎所有这些功能.我最初在做

function a(){
    global  $site, $admin, $dir, $ma_plug, $base;
    //Write the A function
}
function b(){
    global  $site, $admin, $dir, $ma_plug, $base;
    //Write the B function
}
Run Code Online (Sandbox Code Playgroud)

这很棒,直到我意识到我的写作功能比我最初想的要多.

将所有这些变量纳入(几乎)每个函数的范围的最佳方法是什么?就像我做的那样?或者像使用常量?我想避免使用session()在所有可能的,如果

Nea*_*eal 6

如果这些函数是唯一使用这些变量的函数,那么最好创建一个这些变量是本地变量的类.

这样您就不会污染全局命名空间,并且需要global在每个函数中使用关键字.

例如:

class MySite {
    private $site;
    private $admin;
    private $dir;
    private $ma_plug;
    private $base;

    function __construct($site, $admin, $dir, $ma, $base) {
       $this->site = $site;
       $this->admin = $admin;
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)