[英]PHP Autoloading Extended Classes
基於對這個問題的回答,我希望我的代碼能夠正常工作,但是由於某種原因卻無法正常工作。 我有一個簡單的類,可以從我的類庫中擴展一個類。
_custom.php
$custom = new MyClass();
class MyClass extends MyAbstractClass{
public function __construct(){
parent::__construct();
}
}
不幸的是,我得到了這個致命錯誤:
致命錯誤 :在...中找不到類“ MyClass”
但是,如果我刪除了extends MyAbstractClass
則錯誤消失了。 似乎問題在於,當嘗試擴展該類時,它不會嘗試加載MyAbstactClass
,這將導致根本找不到MyClass
。
有什么想法或建議嗎?
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()
函數的常量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.