假设我有以下代码:
class siteMS
{
...
function __CONSTRUCT()
{
require 'config.php';
$this->config = new siteMSConfig;
...
}
...
}
从siteMSConfig类内部可以确定是否从siteMS类内部调用天气?
答案 0 :(得分:3)
是的,但是没有“漂亮”的方法 - 你最终会看到backtrace或类似的东西。
最好将(可选?)参数传递给siteMSConfig
构造函数,如下所示:
class siteMSConfig
{
public function __construct($inSiteMS = false)
{
}
}
或者,子类siteMSConfig
:
class siteMSsiteMSConfig extends siteMSConfig
{
public function __construct()
{
// Possibly call parent::__construct();
}
}
答案 1 :(得分:1)
技术上是的,您可以使用debug_backtrace来确定您的来电者是谁。
编写一个类,它根据它所调用的地方改变其行为,但后来却要求一个痛苦的世界。为什么不参数化不同的行为,或者做一个子类?
答案 2 :(得分:0)
我猜你必须用变量传递它,从你叫它的地方
$this->config = new siteMSConfig ('siteMS');