温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php如何实现类的自动加载

发布时间:2021-08-31 14:36:41 来源:亿速云 阅读:170 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关php如何实现类的自动加载,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

类的自动加载

在外面的页面中,并不需要去引入类文件,但程序会在需要一个类的时候自动去“动态加载”该类。

① 创建一个对象的时候new

② 直接使用一个类名(操作静态属性与方法)

使用__autoload魔术函数

当出现两种情况时候,就会调用该函数,该函数需要我们预先定义,在其中写好加载类文件的通用语句

function __autoload($name){   require './lib/'.$name.'.class.php'; }

使用spl_autoload_register()

用它注册(声明)多个可以代替__autoload()作用的函数,自然也得去定义这些函数,并且函数的作用跟__autoload()作用一样,不过此时可以应对更多的情形

//注册用于自动加载的函数 spl_autoload_register("model"); spl_autoload_register("controll"); //分别定义两个函数 function model($name){   $file = './model/'.$name.'.class.php';   if(file_exists($file)){     require './model/'.$name.'.class.php';   } } //如果需要一个类,但当前页面还没加载该类 //就会依次调用model()和controll(),直到找到该类文件加载,否则就报错 function controll($name){   $file = './controll/'.$name.'.class.php';   if(file_exists($file)){     require './controll/'.$name.'.class.php';   } }
//若注册的是方法而不是函数,则需要使用数组 spl_autoload_register(   //非静态方法   array($this,'model'),   //静态方法   array(__CLASS__,'controller') );

项目场景应用

//自动加载 //控制器类 模型类 核心类 //对于所有的类分为可以确定的类以及可以扩展的类 spl_autoload_register('autoLoad'); //先处理确定的框架核心类 function autoLoad($name){   //类名与类文件映射数组   $framework_class_list = array(     'mySqldb' => './framework/mySqldb.class.php'   );   if(isset($framework_class_list[$name])){     require $framework_class_list[$name];   }elseif(substr($name,-10)=='Controller'){     require './application/'.PLATFORM.'/controller/'.$name.'.class.php';   }elseif(substr($name,-6)=='Modele'){     require './application/'.PLATFORM.'/modele/'.$name.'.class.php';   } }

关于“php如何实现类的自动加载”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI