当前位置:网站首页 / web / 正文

[PHP]自动加载类文件

时间:2016年08月27日 | 作者 : lovean | 分类 : web | 浏览: 1360次 | 评论 0

最近发现,自己学的那么一点点渣渣的编程技术真的是太渣了,所以决心要从本质上连接编程,理解编程思想,而不是纯粹的做一个码农而编码。


语言界是没有好坏之分的,不能说一个人英语说的好,一个人韩语说的好,就说英语比韩语好,编程中也是这样,没有语言之分。所以我决心把PHP好好的学习下。


之前学的PHP算是一个皮毛,只会做东西,而不会设计。只能做一个打工的。从这篇文章开始,决心改变思路。


不知道有几个网友能看到我的文章,如果我写的东西不正确,请批评指正。新手。


下面我开始介绍下自动加载类文件:

    因为最近受到java编程的影响,对面向对象有点小入门,所以开始写一些和之前不同的东西。


     一般在php中引入一个类文件,需要用到include或者是require这样的语句,如果一次需要引入的文件太多了。就会显的比较臃肿。


    php给我们提供了两个可以自动引入类的方法,先说明,这两个方法的区别是:

                    1.使用__autoload()会自动触发

              2.使用spl_autoload_register()需要手工打开

                                    1.先来介绍下第一种方法

                                                        使用__autoload()方法

                                                         比如说,我定义了一个类文件:autotest.class.php

<?php
class autotest{
   private $username = "lovean";
   public function __get($name)
   {
    return $this->$name;
   }
}

                                            

                                    

                                    现在我们在另外一个文件(auto.php)中实例化一个对象

<?php

function __autoload($class){
   $file = $class.'.class.php';
   if(is_file($file)){
       require_once $file;
   }else{
       echo "no file";
       die();
   }
}

$test = new autotest();
echo $test->username;

                                    

                                    上面在一段就会自动引入文件


    2.介绍下spl_autoload_register(),前面的类文件不变,实例化对象的文件需要变下:

<?php

function autofile($class){
   $file = $class.'.class.php';
   if(is_file($file)){
       require_once $file;
   }else{
       echo "no file";
   }
}

spl_autoload_register('autofile');
$test = new autotest();
echo $test->username;

                        

不难看出来。第二种方法需要手动去载入文件。第一种方法是自动的。性能上面我没进行比较,不过目测第二种方法应该更实用。。嘿嘿,猜的。大家有不明白的记得百度。


推荐下自家的免费vpn服务器:关注微信工作平台“loveanbang”回复vpn可以获得免费vpn帐号。




本站采用阿里云服务器,如果你也想使用阿里云服务器,可以点击领取代金券/优惠券



猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

友情链接