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

搜索
博主信息
博文 145
粉絲 7
評(píng)論 7
訪問(wèn)量 198613
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP基礎(chǔ)知識(shí):類(lèi)的攔截器和重載以及命名空間
李東亞1??3????12?
原創(chuàng)
1039人瀏覽過(guò)

一、類(lèi)中常見(jiàn)魔術(shù)函數(shù)(攔截重載)

1.魔術(shù)方法

  • __construct():類(lèi)的構(gòu)造函數(shù)
  • __destruct():類(lèi)的析構(gòu)函數(shù)(不能帶有任何參數(shù))
  • __call():在對(duì)象中調(diào)用一個(gè)不可訪問(wèn)方法時(shí)調(diào)用
  • __callStatic():用靜態(tài)方式中調(diào)用一個(gè)不可訪問(wèn)方法時(shí)調(diào)用
  • __get():獲得一個(gè)類(lèi)的成員變量時(shí)調(diào)用
  • __set():設(shè)置一個(gè)類(lèi)的成員變量時(shí)調(diào)用
  • __isset():當(dāng)對(duì)不可訪問(wèn)屬性調(diào)用isset()或empty()時(shí)調(diào)用
  • __unset():當(dāng)對(duì)不可訪問(wèn)屬性調(diào)用unset()時(shí)被調(diào)用。
  • __sleep():執(zhí)行serialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)
  • __wakeup():執(zhí)行unserialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)
  • __toString():類(lèi)被當(dāng)成字符串時(shí)的回應(yīng)方法
  • __invoke():調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí)的回應(yīng)方法
  • __set_state():調(diào)用var_export()導(dǎo)出類(lèi)時(shí),此靜態(tài)方法會(huì)被調(diào)用。
  • __clone():當(dāng)對(duì)象復(fù)制完成時(shí)調(diào)用

二、命名空間

1.命名空間的基本組成:命名空間關(guān)鍵字:namespace+空間名字+空間中主體內(nèi)容,例如:namespace one或者namespace one{……};
2.命名的空間的思維系統(tǒng)文件夾原理,使用來(lái)解決php中全局成員的命名沖突(類(lèi)、函數(shù)、常量)
3.命名空間多層級(jí)的寫(xiě)法:namespace one\two\three;
4.當(dāng)前空間中調(diào)用后代命名空間的寫(xiě)法:(可省略當(dāng)前命名空間名字直接從子級(jí)命名空間開(kāi)始寫(xiě)):在two空間中調(diào)用子空間中的類(lèi)方法three\Demo::show()
5.當(dāng)前空間中調(diào)用父級(jí)命名空間的寫(xiě)法:(從根命名空間開(kāi)始寫(xiě)):在two空間中調(diào)用父級(jí)空間中的類(lèi)方法\one\Demo::show()
6.知識(shí)點(diǎn):

  • clone:實(shí)例化對(duì)象后的賦值引用賦值,使用關(guān)鍵字clone可以完成對(duì)對(duì)象的復(fù)制得到新的獨(dú)立的對(duì)象;例如:$obj1=clone $obj;

實(shí)戰(zhàn)練習(xí)

(一)魔術(shù)函數(shù)練習(xí)

1.代碼

  1. <?php
  2. class Demo
  3. {
  4. public $name;
  5. private $age;
  6. //構(gòu)造函數(shù)
  7. public function __construct($name,$age){
  8. $this->name=$name;
  9. $this->age=$age;
  10. }
  11. public function __toString(){
  12. return "我是一個(gè)類(lèi)";
  13. }
  14. public function __invoke(){
  15. return "我是一個(gè)類(lèi)";
  16. }
  17. public function __get($name){
  18. return "未定義的屬性或無(wú)訪問(wèn)權(quán)限";
  19. }
  20. public function __set($name,$value){
  21. printf('%s(%s)沒(méi)有此屬性',$name,$value);
  22. }
  23. public function __wakeup(){
  24. echo "反序列成功";
  25. }
  26. public function __sleep(){
  27. // echo "序列化";
  28. return ["a","b"];
  29. }
  30. public function __call($func,$argv){
  31. echo $func."[".implode(",",$argv)."]";
  32. }
  33. static public function __callStatic($func,$argv){
  34. echo $func."[".implode(",",$argv)."]";
  35. }
  36. // 析構(gòu)函數(shù)
  37. // public function __destruct(){
  38. // echo "銷(xiāo)毀實(shí)列";
  39. // }
  40. }
  41. $demo=new Demo("ldy",20);
  42. echo $demo."<br>";
  43. echo $demo()."<br>";
  44. echo $demo->name."<br>";
  45. echo $demo->myname."<br>";
  46. echo "<hr>";
  47. $demo->sex="男";
  48. echo "<br>";
  49. $demo->name="dlf";
  50. echo $demo->name."<br>";
  51. echo "<hr>";
  52. $string=serialize($demo);
  53. echo $string."<br>";
  54. unserialize($string);
  55. echo "<hr>";
  56. $demo->func(2,3);
  57. Demo::func(4,6,5);
  58. // unset($demo);//銷(xiāo)毀$demo實(shí)列
  59. echo "<br>";

2.運(yùn)行結(jié)果

(二)命名空間

1.代碼

  1. <?php
  2. namespace one
  3. {
  4. class Demo
  5. {
  6. }
  7. // function func(){
  8. // echo "我是one中的函數(shù)";
  9. // }
  10. func();//函數(shù)在當(dāng)前空間沒(méi)有時(shí),會(huì)自動(dòng)向上層空間查找直到摘掉位置;常量和函數(shù)相同;但類(lèi)只會(huì)在當(dāng)前空間查找
  11. echo \Demo::class."<br>";
  12. echo Demo::class."<br>";
  13. echo two\Demo::class."<br>";
  14. }
  15. namespace one\two
  16. {
  17. class Demo
  18. {
  19. }
  20. echo Demo::class."<br>";
  21. echo \one\Demo::class."<br>";
  22. echo \Demo::class."<br>";
  23. }
  24. namespace {
  25. class Demo
  26. {
  27. }
  28. function func(){
  29. echo "我是跟空間函數(shù)";
  30. }
  31. func();
  32. echo Demo::class."<br>";
  33. echo one\Demo::class."<br>";
  34. echo one\two\Demo::class."<br>";
  35. }

2.運(yùn)行結(jié)果

(三)命名空間的使用

1.代碼
demo11-1.php

  1. <?php
  2. namespace one;
  3. $name="種業(yè)圈";

demo11-2.php

  1. <?php
  2. namespace one;
  3. function show($name){
  4. echo "Hello,".$name;
  5. }

demo11.php

  1. <?php
  2. namespace one;
  3. include "demo11-1.php";
  4. include "demo11-2.php";
  5. show($name);

2.運(yùn)行結(jié)果:

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

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

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

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

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