請看下面的兩個例子:
實施例1:
$variable = 'some value';
class Foo {
public function bar() {
global $variable;
print $variable;
}
}
實施例2:
$variable = 'some value';
class Foo {
public function bar() {
print $GLOBALS['variable'];
}
}
實例可以使用這樣的:
$foo = new Foo();
$foo->bar();
兩者似乎做同樣的事情?有什麼不同?比其他方式更好嗎?爲什麼有兩種不同的方式來做到這一點?
第一個例子對我來說似乎很陌生,因爲它看起來像一個聲明,然後使用該變量而不指定它..看起來很奇怪。
謝謝。
[do not use globals](http://stackoverflow.com/questions/5166087/global-in-functions/5166527#5166527) –
Globals並不總是不好。我寫了一個config.inc/config.php文件,它連接到Oracle數據庫。在這個文件中,連接被分配給一個變量。要做查詢,我需要訪問這個變量,否則我必須繼續進行連接。所以這是一個有效的使用權利?告訴我,如果不是。 – ale
不是。我在這裏鏈接的答案提到了非常有用的文章 - 閱讀它們不會浪費時間。對於你的情況,你需要[依賴注入](http://en.wikipedia.org/wiki/Dependency_injection)或[DI容器](http://martinfowler.com/articles/injection.html)。 –