为什么php类克隆

时间:2010-09-11 08:04:12

标签: php class

我写了一些代码:

class A {

  private $x = 1;
  private $y = "z";

  public function setX($x){
   $this->x = $x;
  }

  public function getX(){
   return $this->x;
  }

 }

 $a1 = new A();

 $a1->setX(2);

 echo $a1->getX();

 $a2 = $a1;

 $a2->setX(666);

 echo $a1->getX();

我有输出:

2

666

但我只为对象$ a2设置值“666”。

为什么$ a1的价值也改变了?

(操作系统:Ubuntu 10.04,PHP 5.3.2-1)

2 个答案:

答案 0 :(得分:1)

通过引用传递对象,而不是通过值传递的数组。这是oop语言中的首选行为,并且比重新分配给另一个变量时复制所有内容要灵活得多。如果需要,可以手动完成复制。

答案 1 :(得分:0)

$a2 = new A();

您需要创建类的新对象。