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;//关闭文件,必要

三:课程总结

posted @ 2015-04-08 11:50  ericliu001  阅读(228)  评论(0编辑  收藏  举报