【发布时间】:2020-01-18 22:09:21
【问题描述】:
我是 OOP php 新手,谁能解释一下问题出在哪里:
包括/autoloader.inc.php:
<?php
spl_autoload_register('autoloader');
function autoloader($class) {
$path = "class/";
$extension = ".class.php";
$fullPath = $path . $class . $extension;
if (!file_exists($fullPath))
return false;
include_once $fullPath;
}
?>
然后是 index.php:
<?php
include 'include/autoloader.inc.php';
$conn = new conn();
// $user = new user();
?>
和类/user.class.php:
class conn {}
class user extends conn {}
我尝试做 get_declared_classes():
- 在声明 $conn 或 $users 之前,未列出类 conn 和 users。
- 如果我声明 $conn,我会从主题中得到致命错误。
- 如果我只声明 $users 并执行 get_declared_classes(),则两个类都会列出。
【问题讨论】:
-
class conn {}在class/user.class.php? -
@AlexHowansky 我不知道我做了什么,但现在它正在工作......谢谢!
-
"conn 和 user 类都在 class/user.class.php 中" 当 PHP 遇到
new conn()时,你的自动加载器会触发,并在 @987654327 中查找类@,失败了。通过将conn放入class/conn.class.php和user放入class/user.class.php,使您的代码符合您的自动加载器的期望。