1.建構函式傳參
2.__get和__set實現,當呼叫不存在的屬性的時候,可以取值和賦值到data屬性陣列
3.__sleep實現,當序列化物件的時候,只序列化data屬性陣列和類內初始化定義的字段
4.__isset實現,可以判斷屬性是否存在,通過判斷data屬性陣列
5.toarray方法實現,返回data屬性陣列
6.記錄了構造初始化後,動態新增的屬性字段
<?php
class sina_data_object
else }}
public function __isset($name)
public function __get($name)
return $this->data[$name];
}public function __set($name, $value)
}public function __sleep()
public function toarray()
public function isnew()
public function clearnewflag()
public function ismodified()
public function getchanges()
public function clearchanges()
}class setting extends sina_data_object
}//初始化物件
$data=array('user'=>'taoshihan');
$setting=new setting($data);
//動態增加屬性
$setting->age=100;
var_dump($setting);
/*object(setting)#1 (4)
["changes":"sina_data_object":private]=>
array(1)
["newflag":"sina_data_object":private]=>
bool(false)}*/
//動態改變初始化的字段
$setting->other='bbbb';
//序列化物件
$serializesetting=serialize($setting);
//反序列化物件
$setting2=unserialize($serializesetting);
var_dump($setting2);
/*object(setting)#2 (4)
["changes":"sina_data_object":private]=>
array(0)
["newflag":"sina_data_object":private]=>
bool(true) #########反序列化回來這裡是true
}*/
C 實體類序列化為XML
這兩天,應要求做乙個c s的小程式,考慮到程式簡潔小巧,存資料的方式不使用資料庫,而是直接存入xml文件中儲存。為了把複雜實體類裡面的屬性存入xml,我們可以使用c 有的反射機制,做乙個簡單的通用工具類來實現。需要設定屬性為public 弱弱的問一句,這種 序列化 的說法是對的嗎?如果我說錯了記得提...
給實體類單獨設定json序列化策略
問題最近剛跳槽,接受乙個四年前的老專案,太多坑了,sprimgmvc jsp的老技術,企業內部偏向運維的專案,大部分是jsp頁面,沒有給統一的前端返回類,沒有針對前端用的分頁包裝類,忍唔住學著寫部落格記錄吐槽下,可能對於其他大神來說,這是些不足掛齒的小問題,但我把坑填好的感覺真的好開心。因為公司的 ...
邊界類 控制類和實體類
uml中類有三種主要的版型 邊界類 控制類和實體類。引入邊界類 控制類及實體類的概念有助於分析和設計人員確定系統中的類。邊界類位於系統與外界的交界處,窗體 報表 以及表示通訊協議的類 直接與外部裝置互動的類 直接與外部系統互動的類等都是邊界類。通過用例圖可以確定需要的邊界類,每個actor use ...