底层原理探析
--
在实例化的时候
PHP
在底层到底作了什么
传智上海校区 崔长春老师
函数
在
PHP
中,咱们经过
new className()
获得一个类的对象,那么在实例化的过程当中,
PHP
在底层到底作了什么?为何咱们能够经过自动加载类函数能将别处的类文件
require
进来?。。。
当咱们在
new
一个类且没有得到对象以前,
PHP
在底层先检查当前文件中有无这个类,若是有对应的类,则获得对象而不是调用自动加载类函数。但若是当前程序文件没有这个类,他会检查本程序文件中有无自动加载类函数,若是有自动加载类函数,则传递类名到该函数并调用该函数,等自动加载类函数执行完毕以后,再次检查当前文件是否有类文件,若是已经加载进来,则直接实例化并获得对象,若是没有找到这个类,则直接报错。具体过程模拟以下:
验证:
1. 当存在自动加载类函数可是当前文件中有类程序时,不会调用自动加载类函数;
2.
当存在自动加载类函数可是当前文件中没有类程序,则会调用自动加载类函数
;