PHP 扩展一个 Class 并使用具有相同基础的另一个 Class

PHP Extending A Class And Using Another Class With The Same Base

我是 PHP 的新手,想知道将 class 变量设置为另一个 class 的新实例是否会引起任何问题,而后者又扩展了与第一个 class 相同的基数 class。基本上,如果我有两个 classes,A 和 B,它们都扩展了一个 Base class。我可以有一个 class, C 来扩展 A 并创建 B 的新实例吗?我想做这样的事情:

// In its own file (BaseClass.php)
    class Base {
        public function log($message) {
            // Write $message to the log
        }
    }

// In its own file (ClassA.php)
    require_once("path/to/BaseClass.php");
    class A extends Base {
        public function test() {
            // Do some test
        }
    }

// In its own file (ClassB.php)
    require_once("path/to/BaseClass.php");
    class B extends Base {
        public function getData() {
            // Get data here
        }
    }

// In its own file (ClassC.php)
    require_once("path/to/ClassA.php");
    require_once("path/to/ClassB.php");
    class C extends A {
        protected $classB;

        public function run() {
            // Initialize an instance of class B
            $this->classB = new B;

            // Can call log() function of Base class because
            // class C extends class A which extends Base
            $this->log("Log Message");

            // Can also call log() function of Base class through
            // class B because class B extends Base
            $this->classB->log("Another Log Message");
        }
    }
    $classC = new C;
    $classC->run();

在同一个 class C 中初始化 Base class 两次(根据我的理解)会不会有任何冲突,调用 log() 是否真的有效? Base的两种不同方式的功能?

我强烈建议不要继续使用您想到的模式。

这是一篇很棒的文章,有助于理解 SOLID 软件设计原则,听起来您的应用程序偏离了 https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design

我知道这决不能回答你的问题;但这是一个错误的问题,鼓励您继续以这种方式设计软件也无济于事。