2011-09-06 39 views
1

我以前曾問過關於stackoverflow上對象的生命期,並且知道它們一直存在,直到腳本結束,我測試了它並且它是真的。但在wordpress的對象生活更長的時間。就像用戶對象一樣,我可以在任何頁面和任何腳本上訪問它,即使它沒有在特定腳本上實例化。Wordpress中對象的生存時間

背後的原因是什麼?

+0

您可以將對象置於睡眠狀態,例如將其序列化內容存儲在數據庫中。選中此項:http://www.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep – yoda

回答

0

原因是,那實際上你有兩個對象。用戶的數據來自數據庫,如果用戶登錄,wordpress的API函數將爲您提供一個包含數據庫數據的對象。

由於數據庫中的數據沒有變化,因此您可以在quadrillion頁面上獲得數十億用戶對象。但是,這些對象中的每一個都只針對一個請求或直到未設置。

要讓任何頁面上的用戶對象可用,wordpress會將每個用戶的數據存儲到數據庫中。數據庫保存數據的時間更長。

+0

如果它從數據庫中提取數據,那麼它應該被實例化腳本。但是你可以迴應任何東西,讓我們說出用戶的名字。即使它沒有在腳本的任何地方實例化。 –

+0

@backTangent也許你不知道的是單例模式:http://php.net/manual/en/language.oop5.patterns.php – yoda