在课堂上返回当前$ this

时间:2014-09-05 18:08:12

标签: php class

我有这个班级

<?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?我的意思是,返回一个包含每个函数的所有变量的对象。

抱歉我的英语不好,谢谢你的帮助!

2 个答案:

答案 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;