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