2010-10-18 38 views
0

如果我檢查對象是否已經存在於像php這樣的語言中有什麼優勢嗎?在initalizie之前檢查變量有意義嗎?

/** 
    * User object 
    * @var My_Model_User 
    */ 
    protected $user = null; 


    /** 
    * Setup 
    */ 
    public function __construct() 
    { 
     if ($this->user === null) { 
      $this->user = new stdClass(); 
     } 
    } 

回答

1

在您的特定例如,它沒有任何意義,因爲構造函數是要執行的第一方法。所以之前,這個對象不存在,所以它的成員也不存在,所以你簡單地假設變量仍然保持其初始值。

如果您在使用對象時使用了意圖改變的變量,那麼檢查這些關鍵部件的存在可能是一個好主意。例如,當你有一個服務器連接的連接對象,並且可以在不破壞你的對象的情況下關閉連接(保存該連接),那麼當你想訪問時檢查連接是否仍然存在是個好主意它。

1

除非$ user是靜態的,並且您試圖實現Singleton模式,否則不需要執行此操作。

相關問題