[英]php static variable initialization doesn't make sense here
我說的是CodeIgniter框架(系統/核心文件夾)的Common.php
文件。
//雖然不需要回答這個問題!
我一直在遍歷代碼,在load_class
函數開始時無法理解這些特定的行。
static $_classes = array();
// Does the class exist? If so, we're done...
if (isset($_classes[$class]))
{
return $_classes[$class];
我的疑問特別是,將變量聲明為空數組並立即檢查該數組中是否存在某些鍵是否沒有意義? 還是我缺少與static
關鍵字相關的內容?
該變量前面的static
修飾符意味着$_classes
的值在每次函數調用后都會$_classes
。
因此,第一次調用該函數時, $_classes
尚不存在,因此將其創建為空數組。
由於該類為空,因此該類不存在,因此將其裝入並放入$_classes
變量。
現在,當函數終止時,由於它是static
,因此不會被清除,並且其值仍然存在。
下一次調用函數時,PHP知道它已經存在,所以它不是一個空數組初始化時,它仍包含了它必須在最后一次函數被調用。
有關更多信息,請參見使用靜態變量 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.