我的資料基礎類 myinfo
在物件導向的程式設計中,通常會在類中設計屬性來儲存資料,例如:
class
foo public
function
getname
() }
當乙個類的屬性很多時,這種 setname(), getname() 的工作量就會增加。
利用 __set(), __get() 的過載功能
在 php 中,對乙個不存在的屬性賦值時,將自動呼叫__set()方法,而呼叫乙個不存在的屬性時,將自動呼叫 __get() 方法。
利用這個特性,我設計乙個資料的基礎類,用乙個 array 來管理所有不存在的屬性,然後改寫 __set() 及 __get()。
abstract
class
myinfo
public
function
__destruct
() public
function
__set
($name, $value)
public
function
__get
($name)
}// 檢查此 $name 的資料是否存在?
public
function
iskeyexists
($name)
public
function
getproperties
()
}
最後這個getproperties() 方法,可以用來訪問所有的屬性名稱及其值。當想要把所有屬性值儲存起來時,就會需要它。
有了這個基礎類之後,我讓所有的資料類都繼承它。
class
categoryinfo
extends
myinfo
public
function
reset
() public
function
isempty
() }
在 reset() 中設定了所有的屬性及其初始值。
結語
有了 myinfo 後,我只要設定其初始值,也就等於設定了屬性,減少了很多煩瑣的工作,當然有些細節並未考慮的很清楚,像若屬性名稱打錯字會如何等等,但小心使用為上,盡量避開這種問題。
參考資料
《php 從入門到精通》 陳超等編著 化學工業出版社
PHP 資料庫讀寫操作的設計 一
資料庫連線類的設計 系統中的資料是存放在資料庫中,所以就無法避免地要對資料庫進行頻繁的讀寫操作。雖然 php 提供了很好的方法,但每次都得寫一長串也是個麻煩,所以設計了乙個易用的讀寫資料庫類別。一 利用單例模式 singleton 建立資料庫連線類 資料庫連線物件通常會在整個專案中被共享使用,沒有必...
二 資料庫設計與操作
仿qq資料庫一共包括5張資料表,每張資料表結構如下 1 tb user 使用者資訊表 這張表主要用來儲存使用者的好友關係與資訊 欄位名 資料型別 是否null 值預設值繫結 描述 idint 否使用者賬號 pwdvarchar 50 否使用者密碼 friendlimitid int是 1新增好友條件...
二 資料庫的讀寫分離
二 資料庫的讀寫分離 1,實現原理 讀寫分離簡單的說是把對資料庫讀和寫的操作分開對應不同的資料庫伺服器,這樣能有效地減輕資料庫壓力,也能減輕io壓力。主資料庫提供寫操作,從資料庫提供讀操作,其實在很多系統中,主要是讀的操作。當主資料庫進行寫操作時,資料要同步到從的資料庫,這樣才能有效保證資料庫完整性...