PHP一个类使用稍后在代码中创建的另一个类的函数


PHP one class using functions of another class created later in code

假设我有两个类(我有更多,但保持简单)。。。我使用的是自动加载,所以我不必担心包含类文件本身。有可能在不重新排序代码的情况下完成这样的操作吗?

$class_horses = new horses($class_rabbits); 
$class_rabbits = new rabbits();

我不能重新排序以首先创建rabbits类的原因是因为它是自动加载的,而重新排序无论如何都会破坏其他依赖项,所以我仍然处于这种情况。

基本上,如果rabbits类存在,我希望hors类能够访问rabbits中的一个函数,但我不确定如何做到这一点。我以为自动加载会让这一切变得清楚,但我还是有点不知所措。这样的事情可能吗?我觉得我错过了什么,可能是在问一个愚蠢的问题。

我真的会在早些时候努力解决这个问题,因为类型提示等是不可能的,并且下面代码中的$rabbit不能被信任为rabbits实例,但您可以使用引用来做到这一点:

<?php
class horses {
        private $rabbit;
        function __construct(&$rabbit){
                $this->rabbit = &$rabbit;
        }
        function test(){
                echo $this->rabbit->getName();
        }
}
class rabbits {
        private $name;
        function __construct($name){
                $this->name = $name;
        }
        function getName(){
                return $this->name;
        }
}

$class_horses = new horses($class_rabbits);
$class_rabbits = new rabbits('hopper');
$class_horses->test();