黑马程序员技术交流社区

标题: 【上海校区】在实例化类的时候PHP在底层到底做了什么 [打印本页]

作者: 为热爱挥汗    时间: 2018-12-3 11:02
标题: 【上海校区】在实例化类的时候PHP在底层到底做了什么
本帖最后由 上海分校-小影 于 2018-12-7 10:47 编辑

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

验证:
1. 当存在自动加载类函数但是当前文件中有类程序时,不会调用自动加载类函数;
                  


2. 当存在自动加载类函数但是当前文件中没有类程序,则会调用自动加载类函数;
                  



作者: 一个人一座城0.0    时间: 2018-12-3 11:13
到此一观




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2