所以..我想知道这有什么影响
$Price->setProduct($Product);
$Product->setPrice($Price);
echo $Product->getPrice()->getTotal();
如果我print_r($Product)
答案 0 :(得分:5)
您已经设置了两个彼此引用的对象。因此,当您尝试print_r其中一个时,最终会导致递归,因为这些对象会不断地相互引用。
这就是您的Product对象的样子:
Product
| Price
| Product
| Price
| Product
| Price
...依此类推,因为每个产品都可以访问Price的引用,而Price又可以访问Product的引用,并且它一直在继续。
通过在Product对象中设置对Price的引用,可以更好地设计应用程序。如果您在逻辑上考虑您的示例,价格不需要知道有关产品的信息。举例来说,书的价格很可能需要能够设置允许设定价格,获取价格和/或获得税的方法。 Price对象中的所有方法都不需要从Product访问任何内容。但是,一旦有了Product对象,您很可能需要知道有关产品的信息,如价格。