PHP 自动载入

当一个项目需要根据不同的请求载入不同的类的时候,之前的做法是require不同的文件进来,但是如果数量巨大就没办法一个语句一个语句去写,而且如果有不小心误删的文件,就会导致PHP FATAL ERROR。在php5.2之后,我们使用__autoload()方法来自动加载类,但是这个方式后来也不好。比如在一个项目中我引入了三个框架,每个框架都有一个autoload,这样的话会报一个函数名重复的错误。

不过在php5.4版本以后,标准php库提供了一个方法,解决了这些问题:spl_autoload_register()

使用方法如下:

index.php

<span style="font-size:14px;"><?php

spl_autoload_register('autoloadIndex');

t1::test();
t2::test();

function autoloadIndex($class)
{
    require __DIR__."/".$class.".php";
}</span>

t1.php

<span style="font-size:14px;"><?php

class T1 {

    public function __construct()
    {
    }

    public function test()
    {
        echo __FILE__;
    }
}</span>

t2.php

<span style="font-size:14px;"><?php

class T2 {

    public function __construct()
    {
    }

    public function test()
    {
        echo __FILE__;
    }
}</span>
时间: 2024-10-06 23:52:54

PHP 自动载入的相关文章

自动载入图片-VBA自动载入照片的问题

问题描述 VBA自动载入照片的问题 Sub ZAIRU() On Error Resume Next Dim R& Dim Pic As Object For Each Pic In Sheet1.Shapes If Pic.Name <> Sheet1.Shapes("按钮 97").Name Then Pic.Delete End If Next For R = 3 To Range("B65536").End(xlUp).Row If (L

php 类自动载入的方法

  在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历目录,自动加载所有符合约定规则的文件的类或函数. 当然,PHP5之前对面向对象的支持并不是太好,类的使用也没有现在频繁. 我们来详细探讨下吧. php 类自动载入方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

深入理解PHP类的自动载入机制_php实例

php的自动加载: 在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦 php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~ 于是:__autoload()函数应运而生. 通常放在应用程序入口类里面,比如discuz中,放在class_core.php中. 先讲浅显的例子: 第一种情况:文件A.php中内容如下 <?php class A{ public

php 类自动载入的方法_php实例

php 类自动载入方法 <?php class inload { /** * 类自动载入,不需要由开发者调用 * * @param string $class 类文件 */ private function autoload( $class ) { if( empty($class) ) { throw new QException('加载文件不存在'.$class); } else { require _SPRING_.'/_Core/SpringMap.php'; //框架地图 if(! f

PHP类的自动载入程序代码

加入我们现在有两个PHP文件,内容如下: Test1.php <?php class Test1 {     public function func1() {         return 'test1';     } } ?> Test2.php <?php class Test2 {     public function func2() {         return 'test2';     } } ?> 然而在需要载入这两个文件时,传统的写法是这样的: <?ph

php自动载入类用法实例分析_php技巧

本文实例讲述了php自动载入类用法.分享给大家供大家参考,具体如下: <?php //function __autoload($class_name) { // require_once $class_name . '.php'; //} spl_autoload_register(array("core",'autoload'));//当实例化类的时候,自动调用core类中的autoload()方法来载入类 //也可以使用__autoload()来实现,但是php新版本建议使用

深入理解PHP类的自动载入机制

php的自动加载: 在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦 php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~ 于是:__autoload()函数应运而生. 通常放在应用程序入口类里面,比如discuz中,放在class_core.php中. 先讲浅显的例子: 第一种情况:文件A.php中内容如下 <?php class A{ public

PHP __autoload函数(自动载入类文件)的使用方法_php技巧

这也是OO设计的基本思想之一.在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可.下面是一个实际的例子: 复制代码 代码如下: class ClassA{ public function __construct(){ echo "ClassA load success!"; } } //定义一个类ClassA,文件名为ClassA.php class ClassA{ public function __construct(){ echo &

解析zend Framework如何自动加载类

本篇文章是对zend Framework如何自动加载类进行了详细的分析介绍,需要的朋友参考下   1.模块中类的自动载入 复制代码 代码如下: $loader = new Zend_Application_Module_Autoloader(array( //模块内容自动加载类 'namespace' => 'Blog',//命名空间定义 即方法的开头为Blog_ 'basePath' => APPLICATION_PATH . '/modules/blog',//模块位置 )); 2. 自动