SPL学习笔记(5)---函数的使用

一:Autoload函数

     I : 为了实例化PHP中的类对象,需要通过一定的方法寻找到类的定义。

     通常情况下,类会定义在一个单独的文件中。

     现在我们建立一个文件夹libs,建立文件 Test.php和Test.class.php

     libs/Test.php 和 libs/Test.class.php 和 index.php

     1:libs/Test.php 的代码

1 <?php
2 class Test{
3     public function __construct(){
4         echo "Loading class libs/Test.php<br>";
5     }
6 }

      2:libs/Test.class.php 的代码

1 <?php
2 class Test{
3     public function __construct(){
4         echo "Loading class libs/Test.class.php<br>";
5     }
6 }

       3:index.php 的代码

 1 <?php
 2 //设置autoload的装载扩展后缀名,可以是多个,用逗号隔开,前面的优先
 3 spl_autoload_extensions('.class.php,.php');
 4 //设置环境变量
 5 set_include_path(get_include_path().PATH_SEPARATOR."libs/");
 6 //告诉php使用autoload函数自动装载类
 7 spl_autoload_register();
 8 //可以使用
 9 $obj=new Test();
10 //输出结果 Loading class libs/Test.class.php

    II:其他方法

       __autoload()函数和自定义装载函数

       

 1 <?php 
 2 //魔术方法自动装载类,不用使用spl_autoload_register
 3 function __autoload($classname){
 4     require_once 'libs/'.$classname.".php";
 5 }
 6 //自定义装载类,可以使用spl_autoload_register("load")自动调用
 7 function load($classname){
 8     require_once 'libs/'.$classname.".php";
 9 }
10 
11 new Test();//输出:Loading class libs/Test.php

     load()函数可以不用require_once函数,可以使用spl_autoload函数

1 function load($classname){
2     spl_autoload("libs/".$classname);
3 }

    III:Autoload()运行流程

二:其他函数

SplFileInfo类和SplFileObject类。

 1 <?php 
 2 $file=new SplFileInfo("demo.txt");
 3 //文件创建时间
 4 echo "FILE is CREATE at ".date("Y-m-d H:i:s",$file->getCTime())."<br>";
 5 //文件修改时间
 6 echo "FILE is Modified at ".date("Y-m-d H:i:s",$file->getMTime())."<br>";
 7 //文件大小
 8 echo "FILE size is ".$file->getSize()." bytes<br>";
 9 //读取文件内容
10 $fileObj=$file->openFile("r");
11 while($fileObj->valid()){
12     //得到文件一行内容
13     echo $fileObj->fgets();
14 }
15 $fileObj=null;//关闭文件,必要
16 $file=null;//关闭文件,必要

三:课程总结

转载于:https://www.cnblogs.com/bwcx/p/spl5.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值