一.Autoload函数

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

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

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

1:libs/Test.php 的代码

<?php class Test{ public function __construct(){ echo "Loading class libs/Test.php<br>"; } }

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

<?php class Test{ public function __construct(){ echo "Loading class libs/Test.class.php<br>"; } }

3:index.php 的代码

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

II:其他方法

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

<?php //魔术方法自动装载类,不用使用spl_autoload_registerfunction __autoload($classname){
    require_once 'libs/'.$classname.".php";
}//自定义装载类,可以使用spl_autoload_register("load")自动调用function load($classname){
    require_once 'libs/'.$classname.".php";
}new Test();//输出:Loading class libs/Test.php

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

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

III:Autoload()运行流程

这里写图片描述

二:其他函数

SplFileInfo类和SplFileObject类。

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