我有这个班级
<?php
class testing {
public $vars;
public function vars($str) {
$this->vars = $str;
return $this;
}
}
?>
和此代码
$testing = new testing();
var_dump($testing);
$dd = $testing->vars('hello');
$ee = $testing->vars('bye');
var_dump($dd);
var_dump($testing);
die;
$ dd的变量$ testing-&gt; vars应为'hello',但它是'bye'。
那么如何让$ ee不影响$ dd?我的意思是,返回一个包含每个函数的所有变量的对象。
抱歉我的英语不好,谢谢你的帮助!
答案 0 :(得分:6)
对象始终作为参考传递。如果您想要两个单独的不相交对象,则需要明确clone
它。
答案 1 :(得分:0)
发生的是这些返回对象的引用而不是值。然后要么必须克隆对象,要么只需要具有以下值的值:
class testing {
private $vars;
public function vars($str) {
$this->vars = $str;
return $this->vars;
}
}
$testing = new testing();
var_dump($testing);
$dd = $testing->vars('hello');
$ee = $testing->vars('bye');
var_dump($dd);
var_dump($ee);
var_dump($testing);
die;