由於PHP是基於請求的,因此它在初始化對象時沒有太大區別,因爲它在任何請求中都會重新創建,但使用全局變量被認爲是不好的做法,不應在新代碼IMO中使用。
我建議在第二個例子中創建一個配置類,但是如果您在代碼的多個位置需要它,請不要每次都創建一個新實例,而是使用依賴注入或singelton模式。
辛格爾頓:
public class Config
{
protected static $instance;
public static Instance()
{
if(self::instance === null)
self::instance = new Config(self::key);
return self::instance;
}
private static $key = "213453452";
public function __construct($key)
{
if($key !== self::key)
throw new InvalidArgumentException("Private Constructor");
}
//your config
}
依賴注入(簡單的例子):
public class MyClass
{
protected $config;
public __construct($config)
{
$this->config = $config;
}
public function DoWork()
{
$subClass = new MySubClass($this->config);
//To Stuff
}
}
$config = new Config();
$myClass = new MyClass($config);
$myClass->DoWork();
'GLOBAL'是不是邪惡的,但如果你有使用'GLOBAL'然後使用'我的整個基礎有一個類'成爲挑戰。這兩個概念上不會在一起 – 2013-03-26 08:49:27