2014-09-05 56 views
0

我有这个类

<?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的瓦尔应该是“你好”,但它是'再见',而不是。

那么如何让$ ee不影响$ dd?我的意思是,为每个函数返回一个包含所有变量的对象。

对不起,我的英语不好,谢谢你的帮助!

回答

6

对象始终作为参考传递。如果你想要两个单独的不相交的对象,你需要明确地clone它。

+0

我需要什么,谢谢! – Xkpr 2014-09-05 19:27:13

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; 
+0

我将铭记未来,谢谢! :) – Xkpr 2014-09-05 19:28:49