亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 145
粉絲 7
評論 7
訪問量 198617
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP基礎(chǔ)知識:序列化和反序列化以及魔術(shù)方法等
李東亞1??3????12?
原創(chuàng)
1214人瀏覽過

序列化和克隆

1、代碼練習(xí)

  1. <?php
  2. namespace T1;
  3. class A
  4. {
  5. public $name='ldy';
  6. protected $age=30;
  7. private $sex='man';
  8. public function getname(){
  9. echo $this->name;
  10. }
  11. }
  12. $a=new A();
  13. echo "<h5>序列化對象</h5>",'<br>';
  14. $s=serialize($a);
  15. echo $s;
  16. echo "<h5>反序列化對象</h5>",'<br>';
  17. $A=unserialize($s);
  18. var_dump($A);echo'<br>';
  19. echo '反序列化后獲取類名:'.get_class($A),'<br>';
  20. echo '<hr>';
  21. namespace T2;
  22. echo '<h3>自定義序列化和反序列</h3>';
  23. class A
  24. {
  25. public $name='ldy';
  26. protected $age=30;
  27. private $sex='man';
  28. public function getname(){
  29. echo $this->name;
  30. }
  31. public function __sleep(){
  32. //序列化時執(zhí)行,序列化對象屬性
  33. return ['name','sex'];
  34. }
  35. public function __wakeup()
  36. { //反序列化時執(zhí)行
  37. return $this->getname();
  38. }
  39. }
  40. $a=new A();
  41. echo "<h5>序列化對象</h5>",'<br>';
  42. $s=serialize($a);//序列化時,
  43. echo $s;
  44. echo "<h5>反序列化對象</h5>",'<br>';
  45. $A=unserialize($s);//反序列化類自動執(zhí)行__wakeup(){};
  46. echo '<br>';
  47. var_dump($A);echo'<br>';
  48. echo '<hr>',"<h5>對象復(fù)制=和clone</h5>",'<br>';
  49. $name=new A();
  50. $c=$name;//引用又稱別名
  51. $c->name='dacheng';
  52. echo '$c中name的值:'.$c->name,'<br>';
  53. echo '$name中name的值:'.$name->name,'<br>';
  54. $name=new A();
  55. $c=clone $name;//克隆一個新的類實例
  56. $c->name='dacheng';
  57. echo '$c中name的值:'.$c->name,'<br>';
  58. echo '$name中name的值'.$name->name,'<br>';

2、演示結(jié)果

魔術(shù)方法__toString():自定義登陸異常類

1、代碼

  1. <?php
  2. class MyException extends Exception
  3. {
  4. public function __construct($message,$code){
  5. $this->message=$message;
  6. $this->code=$code;
  7. }
  8. public function __toString(){
  9. $str="異常錯誤提示:{$this->message}".'<br>'."異常提示代碼:{$this->code}";
  10. return $str;
  11. }
  12. }
  13. class Login
  14. {
  15. public static $code;
  16. public function __construct($code){
  17. self::$code=$code;
  18. switch(self::$code){
  19. case 1:
  20. throw new MyException('密碼錯誤',1);
  21. break;
  22. case 2:
  23. throw new MyException('賬戶錯誤',2);
  24. break;
  25. default:
  26. throw new MyException('未知異常',3);
  27. }
  28. }
  29. }
  30. try{
  31. $error=new Login(2);
  32. }catch(MyException $e){
  33. echo $e;
  34. }

2、運行結(jié)果

總結(jié)

1、序列化:serialize();對象序列化對應(yīng)的函數(shù):__sleep(){}
2、發(fā)序列化:unserialize();對象反序列化(是生成一個新對象)的對應(yīng)的函數(shù):__wakeup(){}
3、對象的復(fù)制:clone關(guān)鍵字,對應(yīng)的對象函數(shù)__clone(){};
=把對象賦值給一個變量,是引用,就是別名
4、__toString(){}魔術(shù)方法:在直接輸出對象時,自動調(diào)用
5、匿名類:new class{}:在接口實現(xiàn)部分功能和作為函數(shù)參數(shù)時使用

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:這些魔術(shù)方法都有一個對應(yīng)的觸發(fā)事件
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)