小编Eri*_*ler的帖子

php autoloader:为什么这个工作?

我一直在尝试自动加载器类目录映射技术,这有点困难.我设法提出了一个相当直接的解决方案(表面上看),但我完全神秘的是它完全有效,而其他"更明显"的解决方案失败了.下面是一些代码片段,说明了我的困惑.

这是工作代码:

<?php
    spl_autoload_register('my_autoloader');

    function my_autoloader($class) {
        $classMap = array(
            'classes/',
            'classes/sites/',
            'classes/data/'
        );
        foreach ($classMap as $location) {
            if (!@include_once($location . $class . '.php')) { // @ SUPPRESSES include_once WARNINGS
                // CLASS DOESN'T EXIST IN THIS DIRECTORY
                continue;
            } else {
                // CLASS IS AUTO-LOADED
                break;
            }
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

这是我觉得应该工作的片段,但不是:

<?php
    spl_autoload_register('my_autoloader');

    function my_autoloader($class) {
        $classMap = array(
            'classes/',
            'classes/sites/',
            'classes/data/'
        );
        foreach ($classMap as $location) {
            if (file_exists($location . $class . '.php')) {
                require_once ($location …
Run Code Online (Sandbox Code Playgroud)

php spl-autoloader

5
推荐指数
1
解决办法
398
查看次数

标签 统计

php ×1

spl-autoloader ×1