我認爲最好的方法是使用帶有一些字符串函數的__set和__get,在這裏讓我給你看看。
class UserProfile
{
public function __get($key)
{
if(isset($this->$key))
{
return $this->$key;
}
}
public function __set($key,$val)
{
$this->cahnge($key,$val);
}
public function __call($key,$params)
{
if(substr("set",$key))
{
//Update
}elseif(substr("get",$key))
{
//return
}
//Else Blah
}
private function change($key,$val)
{
if(isset($this->$key))
{
$this->$key = $val;
}
}
}
的__call()方法將讓你與功能,如
$profile->setUsername('Robert Pitt');
只要設置爲你substr
設置/獲取並檢查字符串作爲類的值的其餘部分: )
另一個例子
public function __call($method,$params = array())
{
if(isset($params[0]) && is_string($params[0]))
{
$this->$method = $params[0];
}
}
//....
$profile->username('Robert Pitt');
即使世界更多的工作在這裏完成
雖然很痛苦,但實現這些幾乎不需要太多時間。我通常在吃午飯的時候做他們。更好的是,將代碼傳遞給學生添加。 – Chris 2010-09-06 15:14:02
@Chris將它傳遞給別人不能被認爲是一個好的解決方案。一個學生或插件可能想要有一個適當的解決方案,以及... – Kennethvr 2011-08-18 11:57:08