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