php自动载入类用法实例分析
本文实例讲述了php自动载入类用法。分享给大家供大家参考,具体如下:
<?php //function __autoload($class_name) { // require_once $class_name . '.php'; //} spl_autoload_register(array("core",'autoload'));//当实例化类的时候,自动调用core类中的autoload()方法来载入类 //也可以使用__autoload()来实现,但是php新版本建议使用spl_autoload_register,因为__autoload()会被逐渐废弃掉 $obj = new MyClass1(); $obj2 = new MyClass2(); class core { public static function autoload($class) { require $class.'.php'; } }
了解思想才是最关键:
自动加载对象
很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本开头写一个长长的包含文件列表(每个类一个文件)。
在 PHP 5 中,不再需要这样了。可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。
Tip
spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载。因此,不再建议使用 __autoload() 函数,在以后的版本中它可能被弃用。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
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的autoLoad自动加载机制
__autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码 代码如下: function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require_once $path . '.php'; } // 这里会自动加载Http/File/Interface.php 文件 $a = new Http_File_Interface(); 这种方法
-
PHP __autoload函数(自动载入类文件)的使用方法
这也是OO设计的基本思想之一.在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可.下面是一个实际的例子: 复制代码 代码如下: class ClassA{ public function __construct(){ echo "ClassA load success!"; } } //定义一个类ClassA,文件名为ClassA.php class ClassA{ public function __construct(){ echo &
-
php中autoload的用法总结
PHP中提供了Autoload来帮助我们方便的进行文件的包含,但是autoload并非想象的那样能够处理所有的情况,今天就来记录一下前几天遇到的autoload存在的一些问题. 为什么要使用 Autoload 在PHP中使用类时,我们必须在使用前加载进来,不管是通过 require 的方式还是 include 的方式,但是会有两个问题影响我们做出加载的决定. 首先是不知道这个类文件存放在什么地方,另外一个就是不知道什么时候需要用到这个文件.特别是项目文件特别多时,不可能每个文件都在开始的部分写很
-
PHP之autoload运行机制实例分析
本文较为深入的分析了PHP的autoload运行机制.对于深入理解PHP运行原理有一定的帮助作用.具体分析如下: php实现autoload有两种方法: 1.拦截器__autoload() 2.设置全局变量函数指针autoload_func为指定函数.通常在c扩展中使用 本质上前者还是通过后者实现的. 分析过程,PHP5.3.6源码: =>Zend/zend_vm_def.h 1894行 ZEND_VM_HANDLER(109,ZEND_FETCH_CLASS,... =>zend_exec
-
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中spl_autoload_register()和__autoload()区别分析
关于spl_autoload_register()和__autoload(),相信大多数都会选择前者了? 看两者的用法: 复制代码 代码如下: //__autoload用法function __autoload($classname){ $filename = "./class/".$classname.".class.php"; if (is_file($filename)) { include $filename; }} /
-
PHP __autoload()方法真的影响性能吗?
介绍 对于php性能问题,议论最多的就是__autoload()方法,很多人提到这个方法非常影响性能.还有人说opcode也能影响到__autoload()方法,所以针对这两点我做了个测试. 最终发现__autoload方法在性能方面的影响不是很大的. 环境 PHP:5.3.9 --以fastcgi模式启动 Nginx:1.1.12 eaccelerator:0.9.6.1 . 最终发现__autoload方法在性能方面的影响不是很大的. 环境 PHP:5.3.9 --以fastcgi模式启动
-
PHP的autoload机制的实现解析
一.autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利.这也是OO设计的基本思想之一.在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可. 下面是一个实际的例子: 复制代码 代码如下: /* Person.class.php */ <?php class Person { var $name, $age; function __cons
-
PHP中__autoload和Smarty冲突的简单解决方法
本文讲述了PHP中__autoload和Smarty冲突的简单解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近,在项目中发现,PHP 的 __autoload 方法失效了.调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因.新版的 Smarty 改变了autoload的方式. 二.解决方法: 在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload"); 如下: <?php define('RO
-
CodeIgniter配置之autoload.php自动加载用法分析
本文实例分析了CodeIgniter配置之autoload.php自动加载用法.分享给大家供大家参考,具体如下: CodeIgniter带了自动加载的功能,可以全局加载类库.模型.配置.语言包等,对于需要全局使用的功能相当方便. 例如:有个全局函数写在app_helper.php中,需要全局加载这个函数,只需设置autoload.php: 复制代码 代码如下: $autoload['helper'] = array('app'); 接下来,所有的地方都可以使用了,配置.模型等配置相似.但方便的同
随机推荐
- 简介AngularJS中$http服务的用法
- javascript 事件处理示例分享
- Java实现求小于n的质数的3种方法
- IOS 照片编辑的view封装的实例详解
- java基于正则表达式实现时间日期的常用判断操作实例
- 微信小程序 简单DEMO布局,逻辑,样式的练习
- php简单smarty入门程序实例
- c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器
- Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)
- TableSort.js表格排序插件使用方法详解
- 30个最好的jQuery 灯箱插件分享
- MySQL多表链接查询核心优化
- onmousewheel event 缩放图片效果
- 复制js对象方法(详解)
- C#图像透明度调整的方法
- 理解C#编程中的静态类和静态成员以及密封类
- C#微信公众号与订阅号接口开发示例代码
- LAMP环境使用Composer安装Laravel的方法
- ES6 对象的新功能与解构赋值介绍
- Silverlight实现跑马灯动画