2014-09-05 57 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