Fatal error: abstract class not found in other class

Fatal error: abstract class not found in other class

我有一个摘要class'AbstractClassA':

abstract class AbstractClassA {
    //some code...
    public static function isValidID($id) { ... }
}

还有一个摘要class:

abstract class AbstractClassB extends AbstractClassA {
    const id = 1111;
}

然后当我在第三个 class 中声明以下内容时:

class OrdinaryClass {
    public static function canDoIt($id) {
        return AbstractClassB::isValidID($id);
    }
}

然后当我检查以下内容时出现以下错误:

OrdinaryClass::canDoIt(1111);

"Fatal error: Uncaught Error: Class 'AbstractClassB' not found in OrdinaryClass.class.php on line ##"

我做错了什么?

当文件位于不同的文件中时,您必须先 require 它们才能使用:

<?php

require_once "/path/to/AbstractClassA.php";
require_once "/path/to/AbstractClassB.php";

class OrdinaryClass {
    public static function canDoIt($id) {
        return AbstractClassB::isValidID($id);
    }
}

可以选择注册 autoloader 以自动完成此操作。

// autoloader.php

spl_autoload_register(function ($className) {
    include __DIR__ . '/' . $className . '.php';
});

// OrdinaryClass.php
require 'autoloader.php';

class OrdinaryClass {
    /* ... */
}