根据this question的回复,我希望我的代码能够正常工作,但由于某种原因,它不是。我有一个简单的类,它从我的类库中扩展了一个类。
_custom.php
$custom = new MyClass();
class MyClass extends MyAbstractClass{
public function __construct(){
parent::__construct();
}
}
不幸的是我得到了这个致命的错误:
致命错误:Class' MyClass'没找到...
但是,如果我删除extends MyAbstractClass
,那么错误就会消失。似乎问题在于,当尝试扩展类时,它不会尝试加载MyAbstactClass
,这会导致MyClass
根本无法找到。
对此有何想法或建议?
答案 0 :(得分:0)
PHP是一种解释型语言,这意味着PHP要定义的已知是在语句之前解析的代码。
class MyClass extends MyAbstractClass{
public function __construct(){
parent::__construct(); #you are forcing a construct call, it is not required if the parent constructor has no args.
}
}
$custom = new MyClass();
对于类,您可以通过使用自动加载器来防止此行为,当调用对象并且未定义时,它将尝试注入并通过给定代码解析类。
您可以定义魔术函数__autoload(),但spl_autoload_register()是首选,因为它更动态,而不是__autoload()
函数的常量。