簡體   English   中英

PHP靜態變量初始化在這里沒有意義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM