php自动加载autoload机制示例分享
2015-01-24信息快讯网
这篇文章主要介绍了php自动加载autoload机制示例,文件结构如下,2种方式实现自动加载,需要的朋友可以参考下
1,自定义函数
2,spl_autoload_register()
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./* -rw-rw-r-- 1 liuyuan liuyuan 800 Feb 19 11:39 ./func_autoload.php -rw-rw-r-- 1 liuyuan liuyuan 906 Feb 19 11:28 ./spl_autoload.php ./include: total 16 drwxrwxr-x 2 liuyuan liuyuan 4096 Feb 19 11:42 ./ drwxrwxr-x 3 liuyuan liuyuan 4096 Feb 19 11:43 ../ -rw-rw-r-- 1 liuyuan liuyuan 142 Feb 19 11:42 aClass.php -rw-rw-r-- 1 liuyuan liuyuan 143 Feb 19 11:42 bClass.php
首先看自定义函数方式:
<?php
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '</ br>');
print_r(get_included_files());
echo EOL;
print get_include_path();
echo EOL;
//set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/ly_php/php_spl/include/');
//set_include_path(dirname(__FILE__).'/include');
//set_include_path(dirname(__FILE__).'/include/');
function __autoload($className){
$filename = './include/'.$className.'.php';
//$filename = './include/'.$className.'.php';
//$filename = '/var/www/ly_php/php_spl/include/'.$className.'.php';
if(file_exists($filename)){
include_once $filename;
}else{
exit('no file');
}
}
$a = new aClass();
$b = new bClass();
print_r(get_included_files());
?>
运行结果如下:
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php func_autoload.php
Array
(
[0] => /var/www/phpgcs/php_autoload/func_autoload.php
)
.:/usr/share/php:/usr/share/pear
aClass is loaded
bClass is loaded
Array
(
[0] => /var/www/phpgcs/php_autoload/func_autoload.php
[1] => /var/www/phpgcs/php_autoload/include/aClass.php
[2] => /var/www/phpgcs/php_autoload/include/bClass.php
)
第二种方式:
<?php
class myLoader{
public static function autoload($className){
$filename = './include/'.$className.'.php';
if(file_exists($filename)){
include_once $filename;
}else{
exit('no file');
}
}
}
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
spl_autoload_register(array('myLoader', 'autoload'));
/**
*__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法
* 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list
*/
//spl_autoload_register( '__autoload' );
error_reporting(E_ALL^E_NOTICE^E_WARNING^E_ERROR);
error_reporting(E_NOTICE | E_WARNING );
$a = new aClass();
print_r(get_included_files());
echo EOL;
$b = new bClass();
echo EOL;
?>
运行结果如下:
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php spl_autoload.php
aClass is loaded
Array
(
[0] => /var/www/phpgcs/php_autoload/spl_autoload.php
[1] => /var/www/phpgcs/php_autoload/include/aClass.php
)
bClass is loaded
php中的curl_multi系列函数使用例子
PHP使用CURL_MULTI实现多线程采集的例子
PHP实现把文本中的URL转换为链接的auolink()函数分享
PHP自带函数给数字或字符串自动补齐位数
Win2003+apache+PHP+SqlServer2008 配置生产环境
ThinkPHP采用<volist>实现三级循环代码实例
destoon实现底部添加你是第几位访问者的方法
destoon实现调用热门关键字的方法
destoon实现资讯信息前面调用它所属分类的方法
destoon实现首页显示供应、企业、资讯条数的方法
destoon实现公司新闻详细页添加评论功能的方法
PHP缓存机制Output Control详解
Thinkphp的volist标签嵌套循环使用教程
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
使用ThinkPHP+Uploadify实现图片上传功能
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
让codeigniter与swfupload整合的最佳解决方案
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
ThinkPHP使用心得分享-上传类UploadFile的使用
php无限遍历目录示例
php多文件上传下载示例分享
php分页代码学习示例分享
php多文件上传实现代码
php图片缩放实现方法
php跨域cookie共享使用方法
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
php中simplexml_load_string使用实例分享
使用swoole扩展php websocket示例
PHP下获取上个月、下个月、本月的日期(strtotime,date)
php mail to 配置详解
php使用strtotime和date函数判断日期是否有效代码分享
限制ckeditor上传图片文件大小的方法
php中autoload的用法总结
PHP中spl_autoload_register函数的用法总结
php cURL和Rolling cURL并发方式比较
is_uploaded_file函数引发的不能上传文件问题
php中的boolean(布尔)类型详解
PHP swfupload图片上传的实例代码