我有一個像
global $var1;
function func1() {
$var1->something(); // $var1 not found ... why?
}
PHP腳本成才必須做全球$ VAR1每功能?
我有一個像
global $var1;
function func1() {
$var1->something(); // $var1 not found ... why?
}
PHP腳本成才必須做全球$ VAR1每功能?
我必須做全球$ VAR1在每一個功能呢?
是的。在PHP
功能得到自己的變量範圍。獲取全局範圍內變量的唯一方法是直接請求變量。
我相信你會明白這是如何造成難以閱讀的麪條代碼。儘可能避免使用全局變量。代替
如果您正在構建面向對象代碼,請考慮使用a Registry(命名空間集合)和/或Dependency Injection(在構造函數中傳遞新對象所需的對象)。
我寧願放棄註冊表中的全球命名空間,因爲這是它是什麼,如果你靜態訪問它。與使用'$ GLOBALS'或使用'global'關鍵字導入數組相同的問題。見http://stackoverflow.com/questions/5283102/how-is-testing-registry-pattern-or-singleton-hard-in-php/5283151#5283151 – Gordon 2011-03-31 07:10:14
它是周圍的其他方式。
$var1 = new StdClass();
function func1() {
global $var1
$var1->something(); // $var1 not found ... why?
}
`
確實的,您需要在您聲明的每個函數中以這種方式調用它。
嚴重的是,你們是否曾經在**之前搜索**,詢問您的問題,就像您要求在http://stackoverflow.com/questions/ask-advice中所做的那樣。同樣的事情只是在9小時前被問到,而且這也是很多重複的事情。請在提問前做好功課。 – Gordon 2011-03-31 07:06:57