开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第一阶段:类的加载(概念和步骤)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/711/detail/12669
类的加载(概念和步骤)
内容介绍:
一、概念
二、步骤
使用类的前提是类必须要在内存里存在,每次使用类之前都定义了类,所以不存在任何的问题,但是在真实的开发里不会这么用,因为定义一个类就是一个类,不会在这个类里面再去做当前类的使用之类的代码,这样不符合代码书写规范,所以类就是独立的类文件。此时想要用的话,有可能会接触到很多的类,需要加载类。本节目标就是理解类的使用机制,掌握类的加载方式和原理,解决使用类的问题。
一、概念
类的加载:类的访问必须保证类在内存中已经存在,所以需要在用类之前将类所在的 PHP 文件加载到内存。
1、类的加载分为两种
(1)手动加载:在需要使用类之间通过 include 将包含类的文件引入到内存,在大型项目里非常费劲,因为加载的类很多,此时不方便,要书写太多的代码。
(2)自动加载:提前定义好类结构和位置,写好引入类文件代码,在系统需要类而内存不存在的时候想办法让写好的加载类的代码执行(自动加载是自动运行写好的加载类的代码)。
真实开发中因为类文件很多,所以通常都会使用自动加载来节省开发工作量。
2、自动加载有两种方式都可以实现
(1)魔术函数\_ \_autoload(): 系统自动调用,需要传入类名,在函数内部实现类的手动加载,在 PHP 里不再建议使用。
function_autoload($classname){
#找到对应的文件路径和命名规范,手动加载
}
(2)自定义函数:自己定义类的加载实现,然后通过 spl_autoload_register
注册到自动加载机制(可以注册多个自动加载)
#自定义类加载函数
function 自定义函数($classname){
#找到对应的文件路径和命名规范,手动加载
}
#注册自动加载
sp1_autoload_register(自定义函数名字);
3、自动加载要求在声明类的时候有良好的规范
(1)类名与文件名一致:类名.php (现在较多使用)或者类名.class.php,注意文件里只有这个独立的类。
(2)类文件分类放好,不同结构、解决不同业务的类应该放在不同文件夹里分层管理,主要是为了好维护,并不是为了实现自动加载。
二、步骤
1、定义类文件
(1)类文件是独立文件,除了类之外不包含其他代码
(2)类文件通常是一个类一个文件
2、确定加载类型,写好加载代码
(1)手动加载:主动在调用前手动加载即可
(2)自动加载_autoload(): 实现好自动加载函数,在使用类之前声明好
(3)自动加载spl_autoload_register(): 自定义加载函数,在使用类之前通过 spl 注册
3、在明确类能够通过自己写的加载代码加载时,可以直接使用类
(1)能找到:实现类的加载和使用
(2)找不到:报错类无法找到