2013-01-18 13 views
-1

PHP中的靜態變量對於每個連接到PHP頁面的用戶都不相同。如果靜態變量應該是靜態的,那麼這是怎麼回事?PHP中的靜態變量對於每個用戶都不相同

這將我帶到這個問題的第二部分:有沒有一種方法可以創建一個在所有連接之間共享的全局靜態變量?

+1

你能展示一些代碼來支持你的第一條語句嗎? – Kermit

+1

請參閱[靜態方法和屬性](http://php.net/manual/en/language.oop5.static.php)和[靜態變量](http://php.net/manual/en/language.variables .scope.php#language.variables.scope.static)。對於共享的全局值,我會考慮像[APC](http://php.net/manual/en/book.apc.php)的某種內存緩存。 – Phil

+0

靜態並不意味着不變;靜態只是指它如何被引用。 –

回答

3

靜態變量只是靜態的,並且在特定的執行範圍內可用。一旦產生PHP實例的Apache線程被銷燬,那個靜態變量就會從內存中移除。因爲第二個用戶打你的Web服務器意味着Apache加載一個新的線程,產生一個全新的PHP實例,它運行在它自己的範圍內。因此,第一個線程中定義的靜態變量在第二個線程中不可用。

+0

第二部分如何? – Ryan

+2

@minitech第二部分可以由許多事情來處理,其中最常用的是數據庫。 –