SPL函数的使用和文件处理类库(5)

1.什么是Autoload
-为了初始化PHP中的类对象,需要通过一定的方法寻找到类的定义。通常情况下,类会定义在一个单独的文件中。
-Autoload就是php找到这些类的方法


实例:
test.php文件
<?php
class Test{
public function __construct(){
echo "Loading Class libs/Test.php<br>";
}
}
?>
test.class.php文件
<?php
class Test{
public function __construct(){
echo "Loading Class libs/Test.class.php<br>";
}
}
?>
spl_auto.php文件
<?php
spl_autoload_extensions('.php,.class.php');//设置autoload寻找php定义的类文件的扩展名,多个扩展名用逗号分隔,前面的扩展名优先被匹配
set_include_path(get_include_path().PATH_SEPARATOR."libs/");
//设置autoload寻找Php定义的类文件的目录,多个目录用PATH_SEPARATOR进行分隔
spl_autoload_register();//提示PHP使用Autoload机制查找类定义
new Test();


?>


2.__autoload装载类
功能同上,用于加载类文件


实例:
<?php
function __autoload($class_name){//定义__autoload函数,可以在不调用spl_autoload_register的函数情况下完成类的装载
echo "__autoload class:".$class_name."<br>";
require_once($class_name.".php");//装载类
}
function classLoader($class_name){//定义一个替换__autoload函数的类文件装载函数
echo "classLoader:".$class_name."<br>";
require_once($class_name.".php");//装载类
}
spl_autoload_register('classLoader');//传入定义装载好的装载类的函数的名称替换__autoload函数
new Test();
?>


 require_once 和spl_autoload的替换
<?php
function classLoader($class_name){//定义一个替换__autoload函数的类文件装载函数
echo "classLoader:".$class_name."<br>";
set_include_path("spl/");
spl_autoload($class_name);//当我们不用require或者require_once载入类文件的时候,而想通过系统查找include_path来装载类时,必须显示调用spl_autoload函数,参数是类的名称来重启类文件的自动查找(装载)
// require_once($class_name.".php");//装载类
}


spl_autoload_register('classLoader');//传入定义装载好的装载类的函数的名称替换__autoload函数
new Test();
?>


理解回顾:
  1.理解和使用默认spl_autoload_register函数装载类
  2.理解和使用__autoload装载类
  3.通过自定义的__autoload函数装载类


3.SPL函数的使用--其他函数
迭代器相关函数
1.iterator_apply为迭代器中每个元素调用一个用户自定义函数
2.iterator_count计算迭代器中元素的个数
3.iterator_to_array将迭代器中的元素拷贝到数组


类信息相关函数
1.class_implements返回指定的类实现的所有接口
可以用instanceof语句判断某个对象是否实现了某个接口或者是某个类的实例
2.class_parents返回指定类的父类
如果继承了多次,会把所有的父类都打印出来


SPL函数使用的小结
1.Autoload的使用 ※重点
2.迭代器相关的函数
了解而已
3。类信息相关函数
用的比较少


五、SPL的文件处理类库
·SplFileInfo用于获得文件的基本信息,比如修改时间、大小、目录等信息
·SplFileObject用于操作文件的内容,比如读取、写入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值