【发布时间】:2014-10-22 21:00:51
【问题描述】:
我想问一下 PHP 对象中的递归是否得到了很好的处理,以及总体上是否可以接受。因为我宁愿拥有这个
class Human{
public $pet;
function setPet($pet){
$this->pet = $pet;
}
}
class Pet{
public $owner;
function __construct($owner){
$this->owner = $owner;
}
}
$a = new Human();
$b = new Pet($a);
$a->setPet($b);
比一组用户,然后将宠物的主人存储为 ID,在我需要获取宠物主人的情况下,我需要执行类似的操作
$arrayOfUsers[$pet->owner]
如您所见,这绝对不漂亮。与其他方法相比,这种递归是否节省内存?它安全吗?这是一种好的做法吗?
【问题讨论】:
-
那些被称为“循环依赖”。他们被认为是一个代码错误。
-
那不是递归。这只是一个嵌入另一个对象的对象。递归是指一系列函数/方法调用最终再次调用自己。例如
function foo() { foo(); } -
@tereško 如果这被认为是一个错误,那么如何以正确的方式实现此功能?我的意思是访问宠物的主人,如果我不能引用它?