内容简介:翻译自:https://stackoverflow.com/questions/2630549/replacement-for-phps-autoload-function
我已经阅读了如下所示在需要时动态加载类文件:
function __autoload($className) { include("classes/$className.class.php"); } $obj = new DB();
当你创建该类的一个新实例时,它会自动加载DB.class.php,但我也读过几篇文章说使用它是不好的,因为它是一个全局函数和你带入项目的任何库一个__autoload()函数会弄乱它.
那么有人知道解决方案吗?也许另一种方法可以达到与__autoload()相同的效果?在找到合适的解决方案之前,我将继续使用__autoload(),因为它不会开始成为一个问题,直到您引入库等.
谢谢.
我已经使用以下代码来使用spl_autoload_register,如果它不存在它会降级,并且还处理使用__autoload的库,你需要包含它.
//check to see if there is an existing __autoload function from another library if(!function_exists('__autoload')) { if(function_exists('spl_autoload_register')) { //we have SPL, so register the autoload function spl_autoload_register('my_autoload_function'); } else { //if there isn't, we don't need to worry about using the stack, //we can just register our own autoloader function __autoload($class_name) { my_autoload_function($class_name); } } } else { //ok, so there is an existing __autoload function, we need to use a stack //if SPL is installed, we can use spl_autoload_register, //if there isn't, then we can't do anything about it, and //will have to die if(function_exists('spl_autoload_register')) { //we have SPL, so register both the //original __autoload from the external app, //because the original will get overwritten by the stack, //plus our own spl_autoload_register('__autoload'); spl_autoload_register('my_autoload_function'); } else { exit; } }
因此,该代码将检查现有的__autoload函数,并将其添加到堆栈以及您自己的函数(因为spl_autoload_register将禁用正常的__autoload行为).
翻译自:https://stackoverflow.com/questions/2630549/replacement-for-phps-autoload-function
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Linux内核如何替换内核函数并调用原始函数
- Fishhook替换C函数的原理
- Go语言中有关字符串替换函数的介绍
- 使用IDAPython自动映射二进制文件替换默认函数名
- x86_64运行时动态替换函数的hotpatch机制
- CSS 基础:块级元素、行内元素、替换元素、非替换元素
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Designing for Emotion
Aarron Walter / Happy Cog / 2011-10-18 / USD 18.00
Make your users fall in love with your site via the precepts packed into this brief, charming book by MailChimp user experience design lead Aarron Walter. From classic psychology to case studies, high......一起来看看 《Designing for Emotion》 这本书的介绍吧!