PHP中类的自动加载的方法
类的自动加载是指,在外面的页面中,并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。
方法1:使用__autoload魔术函数
当程序需要某个类时,就会去调用该函数,该函数我们需要自己去定义并在其中写好加载类文件的通用语句。
<?php //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A function __autoload($className){ require "./21".$className.".class.php"; } $o1 = new A(); $o1->v1 = 10; echo "<br/>v1:".$o1->v1; ?>
方法2:使用spl_autoload_register函数
该函数的作用是生命多个可以用来代替autoload函数作用的函数,语法如下:spl_autoload_regist("函数名1");如果用spl_autoload_register,autoload就失效了。
<?php //注册两个用于自动加载的函数名 spl_autoload_register('auto1'); spl_autoload_register('auto2'); function auto1($className){ $file = "./21".$className.".class.php"; if(file_exists($file)){ require "./21".$className.".class.php"; } } function auto1($className){ $file = "./22".$className.".class.php"; if(file_exists($file)){ require "./22".$className.".class.php"; } } //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载 ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
php _autoload自动加载类与机制分析
在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可 test.class.php 复制代码 代码如下: <?php class abc{ function __construct() { echo 'www.hzhuti.com; } } ?> load.php 代码如下 复制代码 代码如下: <?php class LOAD { static function loadClass($class_name) { $filename = $cl
-
解析php类的注册与自动加载
工程目录如下: 1.将需要注册的类放在一个数组中 复制代码 代码如下: <?phpfinal class Utils { private function __construct() { } public static function getClasses($pre_path = '/') { $classes = array( 'DBConfig' => $pre_path.'DBConfig/DBConfig.php',
-
PHP的autoload自动加载机制使用说明
在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来,但是这样可能会使得在引用文件的新脚本中,存在大量的include或require方法调用,如果一时疏忽遗漏则会产生错误,使得代码难以维护. 自PHP5后,引入了__autoload这个拦截器方法,可以自动对class文件进行包含引用,通常我们会这么写: 复制代码 代码如下: function __autoload($className) { include_o
-
PHP spl_autoload_register实现自动加载研究
这里通过一个实验谈谈这个函数的部分特征. 函数原型 bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) 版本兼容 PHP 5 >= 5.1.2 实验过程 第一步,使用spl_autoload_register()函数注册load()方法 复制代码 代码如下: <?php function load(){ require_onc
-
PHP autoload与spl_autoload自动加载机制的深入理解
PHP autoload机制详解(1) autoload机制概述在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利.这 也是OO设计的基本思想之一.在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可.下面是一个实际的例 子: 复制代码 代码如下: /* Person.class.php */<?phpclass Person {var $name, $age;f
-
php自动加载autoload机制示例分享
1,自定义函数 2,spl_autoload_register() 复制代码 代码如下: liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./*-rw-rw-r-- 1 liuyuan liuyuan 800 Feb 19 11:39 ./func_autoload.php-rw-rw-r-- 1 liuyuan liuyuan 906 Feb 19 11:28 ./spl_autoload.php ./include:total 16drw
-
php自动加载方式集合
php加载文件方式: 1.include,include_once,requice,requice_one常规加载 2.__autoload() 3.spl_autoload_register() 常规加载方式 假设我们有一个类文件A.php,里面定义了一个名字为A的类: <?php class A { public function __construct() { echo 'Got it.'; } } 然后我们有一个index.php需要用到这个类A,常规的写法就是 <?php requi
-
php类自动加载器实现方法
本文实例讲述了php类自动加载器实现方法.分享给大家供大家参考.具体如下: 这里autoload 可兼容以下格式: Cache_File_Json class_xxx.php xxx.class.php xxx.php php代码如下: function __autoload($className){ $dirs=explode('_',$className); $fileName=array_pop($dirs); //print_r($dirs); $filePath=$fileName
-
php自动加载机制的深入分析
一.php中实现自动加载的方法1.使用require,include,require_once,include_once手工进行加载.2.使用__autoload来进行自动加载3.使用spl的autoload来实现自动加载手工加载的实现: 当需要加载的文件很少的时候我们可以使用第一个来完成.这样做很简单也没问题. 复制代码 代码如下: require_once 'a.php';require_once 'b.php';require_once 'c.php'; 但是当需要加载文件很多的时候这样做
-
PHP中类的自动加载的方法
类的自动加载是指,在外面的页面中,并不需要去"引入"类文件,但是程序会在需要的时候动态加载需要的类文件. 方法1:使用__autoload魔术函数 当程序需要某个类时,就会去调用该函数,该函数我们需要自己去定义并在其中写好加载类文件的通用语句. <?php //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A function __autoload($className){ require "./21".$clas
-
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
本文实例讲述了AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法.分享给大家供大家参考,具体如下: 接着前面那篇<AngularJS使用ng-app自动加载bootstrap框架问题分析>,现在我们看下如何使用带属性值的ng-app命令,让ng-app自动加载我们自定义的模块作为根模块. <!DOCTYPE html> <html> <head> <script src="angular.js">&l
-
AngularJS框架的ng-app指令与自动加载实现方法分析
本文实例分析了AngularJS框架的ng-app指令与自动加载实现方法.分享给大家供大家参考,具体如下: ng-app是angular的一个指令,代表一个angular应用(也叫模块).使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载.也就是说,ng-app是可以带属性值的.如果想要实现自动加载,那么就不能让ng-app带有属性值. <html> <body ng-app> <div>div1:{{1+3*2}}</
-
CI框架中类的自动加载问题分析
本文实例讲述了CI框架中类的自动加载问题.分享给大家供大家参考,具体如下: application/config 配置文件中添加: | 1. Packages | 2. Libraries | 3. Helper files | 4. Custom config files | 5. Language files | 6. Models 1. 第三方库文件加载 // $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/
-
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
本文实例讲述了PHP从零开始打造自己的MVC框架之类的自动加载实现方法.分享给大家供大家参考,具体如下: 前面介绍了MVC框架的入口文件,接下来我们希望完成一个"自动加载类"的功能,我们把这个功能放到Imooc这个基础类当中. core\imooc.php: <?php namespace core; class Imooc { public static $classMap = array(); static public function run() { p('ok'); $
-
PHP MVC框架中类的自动加载机制实例分析
本文实例讲述了PHP MVC框架中类的自动加载机制.分享给大家供大家参考,具体如下: 原文 实现类的自动加载主要使用到了set_include_path和spl_autoload_register函数. set_include_path用于提前设置好可能会加载的类的路径. spl_autoload_register用于调用相关自动加载所需类的函数,实现自动载入的功能. 有一点要注意的是:自动加载在实例化类的时候执行,也就是说使用extends继承类的时候,是不会自动加载父类的. 设置目录如下:
-
php的命名空间与自动加载实现方法
类的自动加载 引子 当我们在php代码中加载类时,我们必须要include或者require 某个类文件. 但遇到类似的情况,例如: require "Class1.php"; require "Class2.php"; $boy = $_GET['sex'] = 0?true:false; if($boy) { $class1 = new Class1(); }else{ $class2 = new Class2(); } 假如我们需要判断一个人的性别,如果是男的
-
Extjs列表详细信息窗口新建后自动加载解决方法
在Extjs中,在当前页面的grid页新建了一行数据后,通过表单形式进入详细页面的编辑,此时,为了能让页面自动打开详细页面编辑,我花了三个小时,终于找到了在Extjs下最合适的方案,结果却只有三句话,我想,这可能也是很多Extjs爱好者们想要知道或者已经知道的,为此,将其与大家分享,只求为extjs群体贡献自己的一些想法. 列表在创建后,一般会有一个提示,现在我把我最开始的几个思路与大家讲讲,想直接看结果的可以跳到最后一套方案~ 方案1(放弃). 在新建数据后,向createform方法传送一个
-
php项目中类的自动加载实例讲解
主要函数:spl_autoload_register() - 注册给定的函数作为 __autoload() 的实现 将函数注册到SPL __autoload函数队列中.如果该队列中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload()函数,它必须显式注册到__autoload()队列中.因为spl_autoload_register()函数会将Zend Engine中的__autoload()函数取代为spl_autoload()或spl_autoload_call()
-
PHP实现的简单路由和类自动加载功能
本文实例讲述了PHP实现的简单路由和类自动加载功能.分享给大家供大家参考,具体如下: 项目目录如下 入口文件index.php <?php define('WEBROOT', 'C:/Users/Administrator/Documents/NetBeansProjects/test'); require_once(WEBROOT.'/core/environment.php'); core__app::run(); // 类自动加载文件environment.php <?php //根据类
随机推荐
- js模拟百度模糊搜索的实例
- 关于网页媒体播放器兼容性的问题(附原码) 下载
- javascript 面向对象全新理练之原型继承
- nginx使用IPV6的相关配置项介绍
- javascript中sort排序实例详解
- 解析在.net中使用XSLT转换xml文档的示例详解
- php计算两个日期相差天数的方法
- php递归遍历多维数组的方法
- 浅谈Python单向链表的实现
- python中随机函数random用法实例
- ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
- JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
- java/jsp中 中文问题详解
- javascript弹性运动效果简单实现方法
- Action访问Servlet的API的简单实例
- C#获取U盘序列号的方法
- 详解Spring MVC如何测试Controller(使用springmvc mock测试)
- Python编写带选项的命令行程序方法
- 详解Spring Cloud Gateway 数据库存储路由信息的扩展方案
- C语言实现纸牌计算24点小游戏