2012-10-20 33 views
0

我正在使用靜態工廠方法創建抽象類的具體實現。但我不斷收到「未找到類」錯誤。PHP錯誤「未找到類」使用抽象類

我知道我的「require」路徑是正確的,因爲任何其他配置都會導致「未能打開流」錯誤。

我的問題是,爲什麼我得到這個「未找到類?」

class A { 
    public function method() { 
     $obj = B::factorymethod(); 
    } 
} 

abstract class B { 
    static function factory() { 
     return new C(); 
    } 
} 

class C extends B {} 

當我這樣做,我得到:

Fatal error: Class 'B' not found in C:\phpproject\C on line 11

A有require_once(B.php),B具有require_once(C.php),C具有require_once(B.php)...沒有其他錯誤。

回答

2

因爲你已經使用了不存在的關鍵字method在你的代碼,防止您的類被正確識別和評估,因此,不被正確定義類中發現的。

+1

謝謝 - 這不是我使用的方法的真實名稱,而是一些懶惰的僞代碼。無論如何,現在我已經修復了抽象類的工作......我沒有時間去深入瞭解這裏出了什麼問題,但我認爲抽象類的檢索是由於其設計中的錯誤而無法完成的(但不是「方法」的東西哈哈)。你的觀點是真實的,雖然它不適用於我的代碼應該看到。 – antman