page contents

php项目中类的自动加载

主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现

attachments-2020-03-ZriYnFiv5e71bcf4bd8a3.jpg

主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现

将函数注册到SPL __autoload函数队列中。如果该队列中的函数尚未激活,则激活它们。

如果在你的程序中已经实现了__autoload()函数,它必须显式注册到__autoload()队列中。因为spl_autoload_register()函数会将Zend Engine中的__autoload()函数取代为spl_autoload()或spl_autoload_call()。

<?php

// $class 类名
function autoloader_1($class) {
    include 'classes/' . $class . '.class.php';
}

function autoloader_2($class) {
    include 'classes/' . $class . '.class.php';
}

// 可以多次使用,但 __autoload() 函数只能使用一次。
spl_autoload_register('autoloader_1');
spl_autoload_register('autoloader_2');

// 或者,自 PHP 5.3.0 起可以使用一个匿名函数
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

php类的自动加载实例:

index.php文件

<?php

define("BASEDIR", __DIR__);
include BASEDIR . "/app/Loader.php";
// 自动加载类及文件
spl_autoload_register('\\app\\Loader::Autoload');

app目录下的Loader.php文件

<?php

namespace app;

class Loader
{
    static function autoload( $class )
    {
        require BASEDIR . '/' . str_replace('\\', '/', $class) . '.php';
    }
}

以上内容希望帮助到大家

attachments-2020-03-8JyMp0e75e71bc89ec51d.jpg

  • 发表于 2020-03-18 14:17
  • 阅读 ( 620 )
  • 分类:PHP开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章