2010-01-26 13 views
1

我,爲什麼都喜歡的Zend使用setter和getter方法主要的PHP框架來設置和獲取基本$ _SESSION [「用戶」]變量很好奇?我現在正在自己做這件事,但我真的不知道我爲什麼,除此之外,現在我發現其他人經常會看到這件事。所以至少在理論上,似乎將這些包裝到課堂中會增加更多的開銷,我只想知道這種趨勢背後是否有任何推理?爲什麼大多數PHP框架使用set/get來獲取Session變量?

回答

5

一個原因是,他們大多讓你的會話存儲在類似數據庫的方式不同。所以無論您的會話如何處理,您都可以使用get/set。

編輯:笨例如檢查會話是否有效就接到電話(IP,瀏覽器)之後。所以,你不必叫「檢查功能」你叫在session_start()之後。

+0

這是我雖然直到我意識到,這可以在不類中封裝它做的確切原因,你可以設置爲使用數據庫,而不使用類或函數 – JasonDavis 2010-01-26 11:29:08

+0

默認的會話處理程序是,您可以設置默認會話處理程序是由數據庫驅動的,但實現會話的類通常具有內置的附加功能,如緩存或將會話數據存儲在數據庫中的另一種方法。 – 2010-01-26 14:56:32

2

它可以延遲加載會話 - 通常,在訪問任何會話變量之前,通過使用getters和setter,您必須運行session_start(),您可以根據需要執行此操作。

+0

這是一個不錯的主意 – JasonDavis 2011-01-09 03:07:57