是从另一个类调用类

时间:2009-01-13 10:52:49

标签: php oop

假设我有以下代码:

class siteMS
 {
    ...
    function __CONSTRUCT()
     {
        require 'config.php';
        $this->config = new siteMSConfig;
        ...
     }
    ...
 }

从siteMSConfig类内部可以确定是否从siteMS类内部调用天气?

3 个答案:

答案 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');