PHP:Class_A调用Class_B调用Class_C—;如何将变量从A传递到C?

PHP:Class_A调用Class_B调用Class_C—;如何将变量从A传递到C?,php,oop,Php,Oop,我有一系列的课程。类_A实例化类_B,类_B实例化类_C。(实际上,类_A实例化三个类,每个类实例化几个。因此,它更像是从类_A分支出来的类树) 类_A持有所有最终类(类_B调用的类)都需要的变量 如何最好地向下传递变量?现在我把它作为一个参数传递给B类,然后B类又把它作为一个参数传递给C类,但这似乎是多余的 class Class_A { function __construct(){ $m = value; $n = new Class_B($m);

我有一系列的课程。类_A实例化类_B,类_B实例化类_C。(实际上,类_A实例化三个类,每个类实例化几个。因此,它更像是从类_A分支出来的类树)

类_A持有所有最终类(类_B调用的类)都需要的变量

如何最好地向下传递变量?现在我把它作为一个参数传递给B类,然后B类又把它作为一个参数传递给C类,但这似乎是多余的

class Class_A {

   function __construct(){

       $m = value;

       $n = new Class_B($m);

   }
}

class Class_B {

    function __construct($m){

        $o = new Class_C($m);

    }

}

class Class_C {

    function __construct($m){

         $this->m = $m;

         $this->do_something();

    }

    public function do_something(){

         return $this->m;

    }

}
类_是否应该设置一个全局变量,使其在分支中的所有后代都可以继承


我的所有子类是否都应该扩展实例化它们的类以访问该变量?

最好的方法应该是不要违反demeter定律。你可能想重构你的类,记住单一责任原则。查看常见的设计模式会有所帮助,尤其是工厂和/或装饰:最好的方法应该是不要违反德米特定律。您可能希望重构类,牢记单一责任原则查看常见设计模式会有所帮助,尤其是factory和/或decorator: