2011-01-11 69 views
0

我想創建設置爲mysql數據的屬性。PHP類:作爲屬性的mysql數據

class MyClass{ 
    private $a = $r['a']; 
    private $b = $r['a']; 
    private $c = $r['c']; 
} 



我知道這是不正確的語法,但我希望你能明白我的意思。

我可以創建一個返回請求的mysql數據的方法,但我不希望爲每一行都調用該函數。

回答

2

您需要實施magic method__get

喜歡的東西:

class MyClass { 
    protected $_row = array(); 

    public function __get($name) 
    { 
    if (array_key_exists($name, $this->_row)) { 
     return $this->_row[$name]; 
    } 
    return null; 
    } 

    public function __isset($name) 
    { 
    return array_key_exists($name, $this->_row); 
    } 
} 

而且,你可以使用:

$obj = new MyClass(); 
$obj->load(); // Or any method to load internal data 
echo $obj->a . $obj->b; 
+0

+1 - 在我看來,最好的解決辦法。 – 2011-01-11 12:23:07