Home > Backend Development > PHP Tutorial > 使用spl_autoload_register为何会出现HTTP500错误?

使用spl_autoload_register为何会出现HTTP500错误?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:19:42
Original
1324 people have browsed it

本人在校学生一枚,PHP目前刚刚学习完面向对象部分,目前正在理解学习SPL库的使用,发现SPL部分有些还是不好理解,学习的项目根目录如下...还望各位大神们指点一二

PSR-0
├── App
│   └── Controller
│            └── Home
│                    └── Revamp.php
├── Users
│   ├── Loader.php
│   └── Object.php
└── index.php

加载类如下Loader.php

<code><?php namespace Users;

class Loader{
    
    public static function autoload($class){
       require BASEDIR. '/'. str_replace('\\', '/', $class) .'.php';
    }
}
</code></code>
Copy after login
Copy after login

Revamp.php

<code><?php namespace App\Controller\Home;

class Revamp {
    
    public static function load(){
        
        echo __METHOD__;
    }
}
</code></code>
Copy after login
Copy after login

入口文件如下index.php:

<code><?php define('BASEDIR', __DIR__);

/**
 * 引入自动加载引导类
 */
require_once BASEDIR . '/Users/Loader.php';

// 将加载函数注册到 SPL 
spl_autoload_register('\\Users\\Loader::autoload');

Users\Objet::load();
App\Controller\Home\Revamp::load();</code></code>
Copy after login
Copy after login

第二个 Revamp类的加载为何会一直有问题?出现HTTP500错误

回复内容:

本人在校学生一枚,PHP目前刚刚学习完面向对象部分,目前正在理解学习SPL库的使用,发现SPL部分有些还是不好理解,学习的项目根目录如下...还望各位大神们指点一二

PSR-0
├── App
│   └── Controller
│            └── Home
│                    └── Revamp.php
├── Users
│   ├── Loader.php
│   └── Object.php
└── index.php

加载类如下Loader.php

<code><?php namespace Users;

class Loader{
    
    public static function autoload($class){
       require BASEDIR. '/'. str_replace('\\', '/', $class) .'.php';
    }
}
</code></code>
Copy after login
Copy after login

Revamp.php

<code><?php namespace App\Controller\Home;

class Revamp {
    
    public static function load(){
        
        echo __METHOD__;
    }
}
</code></code>
Copy after login
Copy after login

入口文件如下index.php:

<code><?php define('BASEDIR', __DIR__);

/**
 * 引入自动加载引导类
 */
require_once BASEDIR . '/Users/Loader.php';

// 将加载函数注册到 SPL 
spl_autoload_register('\\Users\\Loader::autoload');

Users\Objet::load();
App\Controller\Home\Revamp::load();</code></code>
Copy after login
Copy after login

第二个 Revamp类的加载为何会一直有问题?出现HTTP500错误

打开错误显示,看看具体的错误是什么。估计你这个情况和 ClassName 的处理有关,注意类名前面还有一个斜杠的

看你发的目录结构,Controller和Home放在同一级了

我按照你的代码敲了一遍,没做任何改变,可以正常输出~

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template