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 {
/* ... */
}
我有一个摘要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 {
/* ... */
}