2012-12-16 41 views
3

目前我在Yii框架我的工作,當我創建了一個類,它擴展CFormModel,PHP函數空時,不工作如果在類中定義魔術方法__get和__set

在I類覆蓋了以下功能:

public function __get($name) 
public function __set($name, $value) 

我已經把以下檢查以確保END_DATE和START_DATE不是空

if(!empty($this->end_date) AND !empty($this->start_date)) 
{ 
     **/*Not Working*/** 
     /*Some Application Logic*/ 
} 

但它不能正常工作,條件是不是G令人滿意。當我調試代碼時,我才知道$this->start_date$this->end_date不是空的。後來我改變了檢查的情況如下:

if($this->end_date!='' AND $this->start_date!='') 
{ 
     **/*Working*/** 
     /*Some Application Logic*/ 
} 

它工作正常,但我仍然不知道爲什麼空功能不能正常工作。 是因爲神奇的方法還是有這個問題的原因?

回答

5

你必須定義一個魔術__isset()方法才能工作。

public function __isset($name) { 
    return isset($this->data[$name]); 
} 

這將觸發調用isset()函數或空的()爲不可訪問的性能。

+0

Oh OK謝謝解決方案 – sarvesh

相關問題