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