PHP 實體類基類和序列化 sleep問題

2021-09-27 09:08:03 字數 1489 閱讀 2970

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 ...