PHP中类的自动加载

类的自动加载

什么是类的自动加载?

类的自动加载是指:在其他的页面中,要想使用其他的类文件,并不需要去“引入”包含的类文件,程序会在需要一个类的时候自动去“动态加载”这个类。

什么情况下需要一个类?
  1. 创建一个对象的时候(实例化)
class A {
	public $v = 10;
	static $b = 20;
	public function show(){
		echo "我是show方法";
	}
	public static jingtai() {
		echo "我是静态方法";
	}
}
$obj = new A(); // 实例化A类
  1. 直接使用一个类名(操作静态或静态方法)
class A {
	public $v = 10;
	static $b = 20;
	public function show(){
		echo "我是show方法";
	}
	public static jingtai() {
		echo "我是静态方法";
	}
}
A::$b; // 调用静态变量
A::jingtai(); // 调用静态方法
实现自动加载类的方法
  1. 使用PHP提供的__autoload魔术函数
    当程序需要一个类的时候就会去调用该函数。该函数需要我们自己去定义,写好加载类文件的通用语句。
/**
函数:__autoload
参数:$className 所需类名
**/
function __autoload($classsName) {
	require "./class" . $className . ".class.php";
}
$obj = new A(); // A类会从当前目录下的class目录寻找A.class.php
  1. 使用PHP提供的spl_autoload_register函数
    该函数作用:使用它来“注册”多个可以用来替代__autoload函数作用的函数。“注册”完后得去定义这些函数,并且这些函数作用跟__autolaod一样,不过这个函数可以从更多的文件夹下获取类文件。
/**
函数:spl_autoload_register
参数:自定义的函数名称("className")
**/
// 注册自动加载函数名
spl_autolaod_register('auto');
spl_autoload_register('load');
// 自定义注册函数
function auto($className){
	$file = "./class" . $className . ".class.php";
	if(file_exists($file)){
		require './class' . $className . ".class.php";
	}
}
function load($className){
	$file = "./lib" . $className . ".class.php";
	if(file_exists($file)){
		require './lib' . $className . ".class.php";
	}
}
// 当前页面没有加载该类时就会依次调用auto和load函数,直到找到该类文件并加载。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐水莲心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值