想我打電話與parent::__construct();
父類的子類我的我。怎麼可以檢測父類是否已被調用,子類的父類檢測子類是否有一個叫父類
回答
我不知道如果我明白你的問題,但我的建議是設置一個靜態變量的true
,在我的情況$CHILD
,在兒童類然後在父類使用get_called_class
然後測試上述靜態變量。
class Base {
public function __construct() {
$child = get_called_class();
if($child::$CHILD)
{
echo "Parent has being called";
}
}
}
class Child extends Base {
public static $CHILD = true;
public function __constructor()
{
parent::__constructor();
}
}
$child = new Child();
另一種方法是使用debug_backtrace作爲@icecub建議
這回答了這個問題,但它是非常嚴酷的代碼/設計。基礎班不應該關心自己是否延期或延期。你確定你想鼓勵像這樣的練習嗎?更好的方法是從OP中挑出更多的東西,這樣我們就能理解他們爲什麼認爲他們有這個要求。在此基礎上下調。 –
爲什麼或者什麼人問我想要做的答案與我無關,也不應該是你的。這是問答論壇,而不是tuturial網站。順便說一句,這個人問我似乎並不是一個新手。下次只需回答問題,然後提供建議。 @AdamCameron – KBJ
沒有必要得到snippy傢伙。我認爲OP def *是一個OO熟練工,如果他們問這樣一個問題。也許不是,但這就是它看起來如此*的問題。有時候 - 通常甚至當有人提出問題時,他們並不是在問他們想問的問題,而是需要一些努力來澄清這一點。最終,我們在這裏*幫助人們*,而不是盲目地「回答問題,因爲它是一個問答網站」,並且有時幫助他們有時意味着來回頭一次。 –
- 1. 父類可以檢查子類是否有這樣的字段?
- 2. 檢查一個父類是否有一個類,如果是這樣應用樣式到這個父
- 3. 測試一個類是否是另一個共同類lisp的子類
- 4. 父類是否應引用子類?
- 5. 測試一個類是否有屬性?
- 6. 子類是否具有父類的所有屬性和方法?
- 7. 如何檢測一個類是否有移動構造函數?
- 8. 是否有可能檢測到Java中是否有類可用?
- 9. jQuery toggleClass父類當子類有一個類
- 10. 找出一個類是否是另一個類的一個子類(Objective-C)
- 11. XPath的PHP - 檢查是否在父類
- 12. 檢查一個類是否具有關聯的基元類型
- 13. 如何確定一個類是否是其他類的子類?
- 14. 檢查類有另一個類,並添加類到下一子
- 15. 檢測是否變量是sympy類型
- 16. 一個子類是否在Objective-C中繼承其父類的協議?
- 17. 是否有可能有一個非模板類子類的模板類?
- 18. 從父類中的另一個子類訪問子類
- 19. 檢查是否有類「paged-」
- 20. 遍歷DOM樹並檢查是否有父類有
- 21. 檢測父類變量或屬性是由其他子類更改objective-c
- 22. 檢測是否含有的NSDate一個
- 23. 檢查元素是否有兩個類
- 24. 檢查類是否有嵌套類?
- 25. C++是否有與它們自己及其父類相同類型的子類?
- 26. 如何檢測被查看的頁面是否是子類別
- 27. 在父類中訪問子類屬性是一個好主意
- 28. 如何檢測父元素中的任何子元素是否具有某個類?
- 29. 檢查一個類是否存在
- 30. 檢查一個類是否可迭代
一個'私人static'僅從父「的構造函數訪問的變量?它不會被訪問或重寫,因爲它是'私人' –
我想你想看看[debug_backtrace](http://php.net/debug_backtrace)。 Afaik是「檢測」函數/方法調用來自何處的唯一方法。 – icecub
如果你解釋爲什麼你需要這樣做,這可能會有所幫助。沒有解釋,這聽起來有點像你的建模可能有點關閉,如果你需要這樣做,但肯定有一個很好的理由。 –