PHP函数spl_autoload_register()用法和__autoload()介绍

spl_autoload_register()的用法:
就是声明一个自定义__autoload(),你可以是A函数,也可以是B函数,想怎么样就怎么样,函数体的写法,当然要和__autoload()一样就OK 了。 
当PHP找不到类文件会调用这个方法,当注册了自己的函数或方法时,PHP不会调用__autoload()函数,而会调用自定义的函数 
spl_autoload_register(‘func_name'); 
spl_autoload_register(array(‘class_name','method_name')); 
详细说明如下: 
spl_autoload_register 
(PHP 5>= 5.1.2) 
spl_autoload_register — 注册__autoload()函数 
说明 
bool spl_autoload_register ([ callback $autoload_function ] ) 
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 
如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 
spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 
spl_autoload_call()。 
参数 
autoload_function 
欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 
spl_autoload()。 
返回值 
如果成功则返回 TRUE,失败则返回 FALSE。 
注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。 
代码如下: 

<?php 

//test.class.php 

class abc{ 
function __construct() 

echo 'www.chhua.com; 


?> 

<?php 

//load.php 
class LOAD 

static function loadClass($class_name) 

$filename = $class_name.".class.php"; 
if (is_file($filename)) return include_once $filename; 


/** 
* 设置对象的自动载入 
* spl_autoload_register — Register given function as __autoload() implementation 
*/ 
spl_autoload_register(array('LOAD', 'loadClass')); 
$a = new Test();//实现自动加载,很多框架就用这种方法自动加载类 
?> 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值