spl_autoload_register()自动加载你的php类,不用require_once啦。
点击 11221 创建时间 2013-08-10 11:51:21
<p>spl_autoload_register()通过声名一个函数,用来自动加载一个类。当你实例化时,当前上下文中没有找到这个类,他就会通过注册的函数来加载你所需要的类。是不是很方便呢?对于要加载多个类的的程序,写代码的时间大大节省了。</p>
<p> </p>
<p>我们来做一个例子:</p>
<p>api/client.php</p>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><?php<br /> namespace api;<br /> class client{<br /> <br /> public function call()<br /> {<br /> echo "call...";<br /> }<br /> }</div>
<p>api/server.php</p>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"> <p><?php<br /> namespace api;<br /> class server{<br /> public function accept(){<br /> echo "accepting....";<br /> }<br /> }</p>
<p> </p> </div>
<p>test.php</p>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><?php function autoload_class ($className) {<br /> include(DIR . "/" . $className . ".php");<br /> }<br /> spl_autoload_register("autoload_class");<br /> <br /> use api\client;<br /> $c = new client();<br /> $c->call(); use api\server;<br /> $s = new server();<br /> $s->accept();</div>
<p>输出:</p>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">call...accepting....</div>
<p>按以前的方式,我们需要写</p>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">require_once "api/client.php";<br /> require_once "api/client.php";</div>
<p>如果类多,需要加载很多次,特别麻烦。建议不要用__autoload(),这个函数以后可能会被弃用。</p>
上一篇: git did not exit cleanly (exit code 128)的解决办法
下一篇: rong framework 1.0 发布了