除了 debug_backtrace() 之外,还有什么方法可以获取调用者函数?
我正在寻找一种不那么贪婪的方法来模拟像朋友或内部这样的范围。
假设我有一个 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)
但它仍然是一个丑陋的代码。
此外,您不能在静态类中使用该技巧。
有更好的主意吗?