2011-07-24 172 views
0

爲什麼一個函數,它是一個類裏面裏面,我不能做這樣的說法:PHP類函數內部全局變量

global $connected = true; 

但我可以這樣做:

global $connected; 
$connected = true; 
+0

有什麼問題? – rabudde

+0

我建議使用$ GLOBALS關聯數組,其中全局變量的名稱是鍵,該變量的內容是數組元素的值。 – Nickool

+2

澄清沒有問題,我只是想知道爲什麼我不能在一個聲明中做到這一點。 – David

回答

1

$connected納入範圍,並賦值給它,兩個分開東西。

在一個聲明中沒有理由使它們成爲可能,這並沒有多大意義。


請問下面的代碼:

function foo() { 
    global $x = 5; 
} 
  • 帶來的 「全球表現」 $x = 5爲範圍?
  • 將「全局表達式」5納入範圍嗎?
  • 5指定給全球$x
  • 5指定給全球$x,然後將$x納入範圍?

我當然知道你打算這是後者,前兩者沒有意義。但是,這個提議的陳述並不清楚。這將是糟糕的語法。

0

因爲裏面你首先必須宣佈一個全局變量的函數。這是你在函數開始時必須做的事情。這樣你可以激活一個沒有通過的特定變量。

+0

雖然這是事實,但這只是說明了OP已經知道的事實。它並不試圖解釋爲什麼這些事實是如此。 –

+0

簡單地說,「因爲」不是答案。 –