當人們處理擴展其他類的類並根據類中的某些設置提供功能時,我會看到兩種不同的實現。將PHP類設置存儲在變量中或從方法返回
- 變量用於存儲設置。
- 方法用於返回設置。
使用變量:
class Model {
var $fields = array();
function getFields() {
return array_keys($this->fields);
}
function getRules() {
return $this->fields;
}
}
class Person extends Model {
var $fields = array(
'name' => array('maxLength'=>10),
'email' => array('maxLength'=>50, 'validEmail'=>true),
);
}
使用方法:
class Model {
function getFields() {}
}
class Person extends Model {
function getFields() {
return array('name','email');
}
function getRules() {
return array(
'name' => array('maxLength'=>10),
'email' => array('maxLength'=>50, 'validEmail'=>true),
);
}
}
兩個例子都達到同樣的效果,我可以做的事情一樣$person->getFields()
和$person->getRules()
,但在方法-example我不喜歡「重複」字段列表,因爲字段實際上都在中定義和$person->getRules()
,並且每次通過該方法詢問時都必須計算該數組。另一方面,我不喜歡每個對象都將所有設置存儲在變量中。這似乎是一種資源浪費。所以我只是想知道更好的方法。
我的主要問題是:
- 是否有性能理由選擇一種方式比其他? 2)
- 是否有OOP邏輯/易於編程/其他原因選擇其中一個 的方式?
使用屬性包含在「使用變量」選項中時,$ this->字段用於將字段名稱數組作爲鍵值存儲,並將一組規則作爲值存儲。 – preyz 2012-08-01 19:41:33
對不起,我的錯誤,我的意思是使用單個屬性'$ person-> name''$ person-> email' – cloakedninjas 2012-08-02 09:31:58