2013-12-09 45 views
0

當你實例化一個類時,php解釋器讀取/加載整個類嗎?還是它只讀取/加載功能,當你調用每個功能?當一個類被實例化時,所有的函數然後加載?

+1

整個文件在執行前被加載和解析。你有做出特定的設計決定嗎?也許值得詳細說明 –

+3

方法(類的函數)在類初始化時不做任何事情。他們只被解析爲正確性(如在*錯別字*),但工作只有當你打電話給他們。 –

+0

當_definition_類被加載時,它讀取整個類。它在調用或實例化時不會單獨加載功能,它只是完全已知類的對象。 – Wrikken

回答

1

在您的類可以實例化之前,它必須先加載並解析;在解析階段,所有的類方法都被轉換爲opcodes並使用它們的名字進行存儲。

當一個類被實例化時,它的方法塊指向之前解析過的類結構。

所以要回答你的問題:是的,它讀取和解析函數,但顯然只有當它們被調用時才運行函數體。

相關問題