<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="详解php中spl_autoload自动加载函数 与spl_autoload_call的区别" id="card1">
<p> 游客</p><p>
标题:详解php中spl_autoload自动加载函数 与spl_autoload_call的区别<br/>
正文:<br/>
SPL有两个不同的函数 spl_autoload, spl_autoload_call，通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。spl_autoload 是SPL实现的默认的自动加载函数，它的功能比较简单。它可以接收两个参数，第一个参数是$class_name，表示类名，第二个参 数$file_extensions是可选的，表示类文件的扩展名&amp;quot; title=&amp;quot;扩展名&amp;quot;&amp;gt;扩展名，可以在$file_extensions中指定多个扩展名&amp;quot; title=&amp;quot;扩展名&amp;quot;&amp;gt;扩展名，护展名之间用分号隔开即 可；如果不指定的话，它将使用默认的扩展名&amp;quot; title=&amp;quot;扩展名&amp;quot;&amp;gt;扩展名.inc或.php。spl_autoload首先将$class_name变为小写，然后在所有的 include path中搜索$class_name.inc或$class_name.php文件(如果不指定$file_extensions参数的话)，如果找 到，就加载该类文件。你可以手动使用spl_autoload(&amp;rdquo;Person&amp;rdquo;, &amp;ldquo;.class.php&amp;rdquo;)来加载Person类。实际上，它跟require/include差不多，不同的它可以指定多个扩展名&amp;quot; title=&amp;quot;扩展名&amp;quot;&amp;gt;扩展名。怎 样让spl_autoload自动起作用呢，也就是将autoload_func指向spl_autoload？答案是使用 spl_autoload_register函数。在PHP脚本中第一次调用spl_autoload_register()时不使用任何参数，就可以将 autoload_func指向spl_autoload。通过上面的说明我们知道，spl_autoload的功能比较简单，而且它是在SPL扩展中实现的，我们无法扩充它的功能。如果想实现自己的更灵活的自动加载机制怎么办呢？这时，spl_autoload_call函数闪亮登场了。我 们先看一下spl_autoload_call的实现有何奇妙之处。在SPL模块内部，有一个全局变量autoload_functions，它本质上是 一个Has<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1889&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1889&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1889&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1889&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1889&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1889">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1889">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>