spl_autoload_register()函数的作用
2014-01-17 14:39
260 查看
spl_autoload_register()函数的作用
发表于1年前(2012-11-28 20:57) 阅读(407) | 评论(0) 3人收藏此文章, 我要收藏
赞0autoload spl_autoload_register
复习__autoload的时候,看到了spl_autoload_register()这个函数。但是一下子没有弄明白,通过查资料我算是弄明白了。
1.__autoload() —— 自动加载函数
我把很多个类文件以 类名.class.php的形式存放在class目录中,在class的同级目录中建立一个index.php。进入class目录里面分别建立class1.class.php、class2.class.php、class3.class.php文件,分别为里面的文件添加一下代码
view sourceprint?
01 <?php
02 //class1.class.php中
03 class class1{
04 public function __construct(){
05 echo "class1";
06 }
07 }
08 ?>
09
10 <?php
11 //class2.class.php中
12 class class2{
13 public function __construct(){
14 echo "class2";
15 }
16 }
17 ?>
18
19 <?php
20 //class3.class.php中
21 class class3{
22 public function __construct(){
23 echo "class3";
24 }
25 }
26 ?>
index.php文件中写入
view sourceprint?
01 <?php
02 function __autoload($classname){
03 $filename = "./class/".$classname.".class.php";
04 if(is_file($filename)){
05 include $filename;
06 }
07 }
08
09 $test1 = new class1();
10 echo '<br/>';
11 $test1 = new class2();
12 echo '<br/>';
13 $test1 = new class3();
14
15 //结果是
16 class1
17 class2
18 class3
19
20 ?>
我们成功的自动加载了class下面所有的要加载的类。
2.spl_autoload_register() —— 注册__autoload()函数
class里面的文件不做任何改变,只是简单的改写一下index.php
view sourceprint?
01 <?php
02 // 写一个loadclass函数
03 // loadclass函数不具备自动加载类的功能
04 function loadclass($classname){
05 $filename = "./class/".$classname.".class.php";
06 if(is_file($filename)){
07 include $filename;
08 }
09 }
10 // spl_autoload_register()函数让这个loadclass具备了自动加载类的功能
11 spl_autoload_register("loadclass");
12
13 $test1 = new class1();
14 echo '<br/>';
15 $test1 = new class2();
16 echo '<br/>';
17 $test1 = new class3();
18 ?>
至于性能上面,我没有过多的发言权,发现很多框架里面都是用的spl_autoload_register(),既然大家都用自然有他的道理,我先留着这个疑问吧。
发表于1年前(2012-11-28 20:57) 阅读(407) | 评论(0) 3人收藏此文章, 我要收藏
赞0autoload spl_autoload_register
复习__autoload的时候,看到了spl_autoload_register()这个函数。但是一下子没有弄明白,通过查资料我算是弄明白了。
1.__autoload() —— 自动加载函数
我把很多个类文件以 类名.class.php的形式存放在class目录中,在class的同级目录中建立一个index.php。进入class目录里面分别建立class1.class.php、class2.class.php、class3.class.php文件,分别为里面的文件添加一下代码
view sourceprint?
01 <?php
02 //class1.class.php中
03 class class1{
04 public function __construct(){
05 echo "class1";
06 }
07 }
08 ?>
09
10 <?php
11 //class2.class.php中
12 class class2{
13 public function __construct(){
14 echo "class2";
15 }
16 }
17 ?>
18
19 <?php
20 //class3.class.php中
21 class class3{
22 public function __construct(){
23 echo "class3";
24 }
25 }
26 ?>
index.php文件中写入
view sourceprint?
01 <?php
02 function __autoload($classname){
03 $filename = "./class/".$classname.".class.php";
04 if(is_file($filename)){
05 include $filename;
06 }
07 }
08
09 $test1 = new class1();
10 echo '<br/>';
11 $test1 = new class2();
12 echo '<br/>';
13 $test1 = new class3();
14
15 //结果是
16 class1
17 class2
18 class3
19
20 ?>
我们成功的自动加载了class下面所有的要加载的类。
2.spl_autoload_register() —— 注册__autoload()函数
class里面的文件不做任何改变,只是简单的改写一下index.php
view sourceprint?
01 <?php
02 // 写一个loadclass函数
03 // loadclass函数不具备自动加载类的功能
04 function loadclass($classname){
05 $filename = "./class/".$classname.".class.php";
06 if(is_file($filename)){
07 include $filename;
08 }
09 }
10 // spl_autoload_register()函数让这个loadclass具备了自动加载类的功能
11 spl_autoload_register("loadclass");
12
13 $test1 = new class1();
14 echo '<br/>';
15 $test1 = new class2();
16 echo '<br/>';
17 $test1 = new class3();
18 ?>
至于性能上面,我没有过多的发言权,发现很多框架里面都是用的spl_autoload_register(),既然大家都用自然有他的道理,我先留着这个疑问吧。
相关文章推荐
- spl_autoload_register()函数的作用
- spl_autoload_register()函数的作用
- 详解spl_autoload_register()函数
- 详解spl_autoload_register()函数
- 详解spl_autoload_register()函数
- php spl_autoload_register函数接口
- PHP的spl_autoload_register()函数
- 详解spl_autoload_register()函数
- 关于PHP中命名空间和spl_autoload_register函数的关系说明
- 详解spl_autoload_register()函数
- 【thinkphp3.x】PHP中spl_autoload_register()函数的用法
- 详解spl_autoload_register()函数
- PHP spl_autoload_register()函数的一些见解
- 详解spl_autoload_register()函数
- spl_autoload_register()函数
- PHP - spl_autoload_register()函数
- 详解spl_autoload_register()函数
- 详解spl_autoload_register()函数
- 详解spl_autoload_register()函数
- php 详解spl_autoload_register()函数