__autoload()和spl_autoload_register()

前者直接加载包含文件,后者指定函数加载包含文件。
<?php
//DIRECTORY_SEPARATOR当前系统的目录分隔符
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
//定义站点根目录
if (!defined('SMARTY_DIR')) {
define('SMARTY_DIR', dirname(__FILE__) . DS);
}
//定义引入类库目录
if (!defined('MYINCLUDE_DIR')) {
define('MYINCLUDE_DIR', SMARTY_DIR . 'include' . DS);
}
//get_include_path()为引入文件目录列表
//set_include_path()向原目录添加新的调用目录
//PATH_SEPARATOR 为系统常量,目录列表间的分隔符
set_include_path(get_include_path().PATH_SEPARATOR.MYINCLUDE_DIR);
//指定引入新类时,通过调用的函数为loadclass
spl_autoload_register('loadclass');
//load_substr,外部类
$ls=new load_substr("abcdefg");
echo $ls->sub_str2(3);
//spl_autoload_register()方式调用
function loadclass($classname){
$file_path=MYINCLUDE_DIR.$classname.'.php';
if(is_file($file_path)){
include $file_path;
}
}
//__autoload()方式调用
function __autoload($classname){
$file_path=MYINCLUDE_DIR.$classname.'.php';
if(is_file($file_path)){
include $file_path;
}
}
//当__autoload()和spl_autoload_register()同时使用时,程序将优先使用后者。
?>

include/load_substr.php
<?php
class load_substr{
public $substr='';
public function __construct($str){
$this->substr=$str;
}
public function sub_str2($num){
return substr($this->substr,0,$num);
}
}
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值