2011-01-11 66 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