有什麼辦法讓調用者函數獲得除debug_backtrace()之外的東西嗎?PHP:朋友類和不真實的來電函數/類
我在尋找一種較不貪心的方式來模擬示範如的朋友或內部。
比方說,我有一個A類和B類
到現在爲止,我一直在使用debug_backtrace()
,這也太貪婪(恕我直言)
我認爲是這樣的:
<?php
class A
{
public function __construct(B $callerObj) {}
}
class B
{
public function someMethod()
{
$obj = new A($this);
}
}
?>
,如果你想將其限制在一個特定的類這可能是好的,但讓我們說我有300級,我想將其限制在25他們?
一種方法可以使用接口聚合:
public function __construct(CallerInterface $callerObj)
但它仍然是一個醜陋的代碼。
此外,你不能使用那招與靜態類。
有什麼更好的想法嗎?
我真的不能回答你關於php部分的問題,但是我想要評論一下,使用接口是一個非常強大和穩固的解決方案。沒有什麼醜陋的。至少,不是你提供的例子。 – Henri
@亨利:正如我在我的文章中所說的「而且,你*不能*使用*靜態類的那個技巧*。」 – avetisk