使用SPL_AUTOLOAD_REGISTER装载类

<?php

/**
* libs/Test.class.php
*/
class Test
{ function __construct()
{
# code...
echo 'loading class libs/Test.class.php\n';
}
} /**
* autoload.php
*/
//设置autoload寻找php定义的类文件的扩展名,多个扩展名用逗号分隔,前面的扩展名优先匹配
spl_autoload_extensions('.class.php,.php');
//设置autoload寻找PHP定义的类文件的目录,多个目录用PATH_SEPARATOR进行分隔
set_include_path(get_include_path().PATH_SEPARATOR.'libs/');
//提示PHP使用autoload机制查找类定义
spl_autoload_register();
new Test();

__AUTOLOAD装载类

<?php

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

 自定义__autoload函数装载类

<?php

//定义一个替换__autoload函数的类文件装载函数
function classLoader($class_name){
echo 'classloader() load class : '.$class_name.PHP_EOL; //当我们不用require_once或require载入类文件的时候,而想通过系统查找include_path来装载类时,必须显式调用spl_autoload函数,参数是类的名称来重启类文件的自动查找(装载)
set_include_path('libs/');
spl_autoload($class_name);
}
//传入定义好的装载类的函数的名称替换__autoload函数
spl_autoload_register('classLoader'); new Test();

 SPL的文件处理类

  • SplFileInfo 用于获取文件基本信息,如创建时间,大小,文件名等
  • SplFileObject 用于操作文件,比如读写
<?php

date_default_timezone_set('PRC');

$file = new SplFileInfo('tmp.txt');

echo 'file is created at '.date('Y-m-d H:i:s',$file->getCTime()).PHP_EOL;

echo 'file is modifyed at '.date('Y-m-d H:i:s',$file->getMTime()).PHP_EOL;

echo 'file size is '.$file->getSize().'bytes'.PHP_EOL;

//读取文件里的内容
$fileObj = $file -> openFile('r'); while ($fileObj ->valid()) {
# code...
echo $fileObj->fgets();
}
//销毁对象
$fileObj = null;
$file = null;

最新文章

  1. 图解SQL的Join(转)
  2. java 使用递归获取指定文件路径目录,删除指定的文件后缀(可扩展,根据具体需要的删除的后缀进行配置)~~
  3. Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了
  4. Selenium - CSS Selector
  5. SpringMVC4+thymeleaf3的一个简单实例(篇一:基本环境)
  6. C语言qsort函数算法性能测试
  7. HTML form表单小结
  8. cookie的设置和获取
  9. Linux查看用户登录信息-last
  10. PHP,PSR开发规范
  11. LL(1),LR(0),SLR(1),LR(1),LALR(1)的 联系与区别
  12. January 29th, 2018 Week 05th Monday
  13. 课堂测试代码(未完全实现,部分代码有bug,仅供参考)
  14. 【阿里巴巴】CBU技术部招聘
  15. UVa 10618 跳舞机
  16. 10 Best jQuery and HTML5 WYSIWYG Plugins
  17. BASE64Encoder及BASE64Decoder编译器找不到问题
  18. Easyui Datagrid相同连续列合并扩展(二)
  19. document.referrer的使用和window.opener 跟 window.parent 的区别
  20. Solidity 合约调用合约

热门文章

  1. 从「Hello World」说起
  2. Java大数据秋招面试题
  3. muduo网络库源码学习————线程池实现
  4. 微软2016校园招聘在线笔试之Magic Box
  5. IDEA2020版使用
  6. linux关于suid提权笔记
  7. K. Road Widening
  8. 第五章:深入Python的dict和set
  9. 【Scala】利用akka实现Spark启动通信
  10. u-boot: Not enough room for program headers, try linking with -N