$objM1= new clsData(22,33);
$objM2= clone $objM1;
$objM2->setData(4,5);
$objM1
的值是否会改变?
答案 0 :(得分:1)
可能。这取决于课程的实施方式。
clone
生成对象的浅副本。这意味着它将创建另一个相同类型的对象,然后复制所有属性。如果此类属性是对象,则克隆的父对象将引用与原始对象相同的对象实例。因此,如果您要修改该对象,则会反映两个对象。
另一种可能性是setData
设置static
属性而不是实例属性,在这种情况下,更改也会反映在两个实例中。
但是,如果您只是在对象上设置整数属性,那么这两个实例将是独立的。