杨庆荣的博客

http://www.wudimei.com/yangqingrong
ecshop、zencart二次开发、discuz x2插件开发。QQ2903595522
访问博客

spl_autoload_register()自动加载你的php类,不用require_once啦。

发布时间 2013-08-10 11:51:21    点击(10951)

spl_autoload_register()通过声名一个函数,用来自动加载一个类。当你实例化时,当前上下文中没有找到这个类,他就会通过注册的函数来加载你所需要的类。是不是很方便呢?对于要加载多个类的的程序,写代码的时间大大节省了。

 

我们来做一个例子:

api/client.php

<?php
namespace api;
class client{
    
    public function call()
    {
        echo "call...";
    }
}

api/server.php

<?php
namespace api;
class server{
    public function accept(){
        echo "accepting....";
    }
}

 

test.php

<?php function autoload_class ($className) {
        include(__DIR__ . "/" . $className . ".php");
 }
 spl_autoload_register("autoload_class");
 
 use api\client;
 $c = new client();
 $c->call();  use api\server;
 $s = new server();
 $s->accept();

输出:

call...accepting....

按以前的方式,我们需要写

require_once "api/client.php";
require_once "api/client.php";

如果类多,需要加载很多次,特别麻烦。建议不要用__autoload(),这个函数以后可能会被弃用。

评论

Name(名字):*
Email:*
QQ:*
*
(*are required,带*号的要求输入。)


个人资料

用户名 yangqingrong
真实姓名