首页 技术 正文
技术 2022年11月6日
0 收藏 428 点赞 848 浏览 1666 个字

使用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装载类

<?phpfunction __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 用于操作文件,比如读写
<?phpdate_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;
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902