在實例化類的時候PHP在底層到底作了什麼

底層原理探析
--
在實例化的時候
PHP
在底層到底作了什麼

傳智上海校區 崔長春老師
函數

PHP
中,咱們經過
new className()
獲得一個類的對象,那麼在實例化的過程當中,
PHP
在底層到底作了什麼?爲何咱們能夠經過自動加載類函數能將別處的類文件
require
進來?。。。
當咱們在
new
一個類且沒有得到對象以前,
PHP
在底層先檢查當前文件中有無這個類,若是有對應的類,則獲得對象而不是調用自動加載類函數。但若是當前程序文件沒有這個類,他會檢查本程序文件中有無自動加載類函數,若是有自動加載類函數,則傳遞類名到該函數並調用該函數,等自動加載類函數執行完畢以後,再次檢查當前文件是否有類文件,若是已經加載進來,則直接實例化並獲得對象,若是沒有找到這個類,則直接報錯。具體過程模擬以下:


驗證:
1. 當存在自動加載類函數可是當前文件中有類程序時,不會調用自動加載類函數;



2.
當存在自動加載類函數可是當前文件中沒有類程序,則會調用自動加載類函數
;
相關文章
相關標籤/搜索