$objM1= new clsData(22,33);
$objM2= clone $objM1;
$objM2->setData(4,5);
$objM1
的值变化吗?
可能吧。这取决于如何实现类。
clone
对对象进行浅复制。这意味着它将创建另一个相同类型的对象,然后复制所有属性。如果这样的属性是一个对象,那么克隆的父对象将引用与原始对象相同的对象实例。所以如果你在修改那个对象,这将在两个对象上反射。
另一种可能性是setData
设置static
属性而不是实例属性,在这种情况下,更改也将在两个实例中反映。
然而,如果你只是在对象上设置整数属性,那么这两个实例将是独立的