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

搜索
博主信息
博文 29
粉絲 1
評論 0
訪問量 30597
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP命名空間和小案例
阿心
原創(chuàng)
822人瀏覽過

命名空間

  1. <?php
  2. //命名空間
  3. // 全局成員四大家族: 類, 接口, 函數(shù), 常量
  4. namespace H5\C3
  5. {
  6. echo __NAMESPACE__,'<BR>';
  7. class Demo
  8. {
  9. const PRO_LANG = '當前語言是html+css3+js(PHP)';
  10. }
  11. }
  12. // echo Demo::PRO_LANG;
  13. namespace JS\CSS
  14. {
  15. class Demo
  16. {
  17. const PRO_LANG = '當前語言是html+css3+js(c++)';
  18. }
  19. class T1
  20. {
  21. const PRO_LANG = '我是T1';
  22. }
  23. class T2
  24. {
  25. const PRO_LANG = '我是T2';
  26. }
  27. }
  28. // namespace H5\JS;
  29. namespace H5\JS
  30. {
  31. class Demo
  32. {
  33. const PRO_LANG = '當前語言是html+css3+js(java)';
  34. }
  35. //當:在本命名空間里訪問了沒有的函數(shù),類等的時候,會自動去全局空間找
  36. echo \Test::A(),'<br>';
  37. echo \Test::AA;
  38. echo '<br>';
  39. echo (new \Test1)->B();
  40. echo '<br>';
  41. }
  42. //創(chuàng)建匿名空間的話。上面所有命名空間應該改為使用{}
  43. namespace
  44. {
  45. //給空間取別名:(當引入的同一個空間比較多時,就可以使用命名空間)
  46. use JS\CSS as t;
  47. echo t\T1::PRO_LANG;
  48. echo '<br>';
  49. //或
  50. use JS\CSS\T2;
  51. echo T2::PRO_LANG;
  52. echo '<br>';
  53. echo \H5\C3\Demo::PRO_LANG;
  54. echo '<br>';
  55. echo \JS\CSS\Demo::PRO_LANG;
  56. echo '<br>';
  57. echo H5\JS\Demo::PRO_LANG;
  58. class Test
  59. {
  60. const AA ='試一試';
  61. public static function A()
  62. {
  63. return '我在這里會被調用';
  64. }
  65. }
  66. class Test1
  67. {
  68. public function B()
  69. {
  70. return '實例化看下';
  71. }
  72. }
  73. // echo (new Test1)->B();
  74. }

命名空間小實戰(zhàn)(分別是三個文件)

這是:inc/lib/demo1.php

  1. <?php
  2. // 如果想實現(xiàn)自動加載,需要滿足二個條件
  3. // 1. 命名空間必須和類文件所在的絕對路徑一一對應
  4. // 2. 當前類名稱與當前的類文件的名稱完全一致
  5. namespace inc\lib;//條件1;
  6. class Demo1//條件2
  7. {
  8. public function Test()
  9. {
  10. return '當前文件是Demo1.php 。當前文件的類名稱是Demo1';
  11. }
  12. }

這是:inc/lib/demo2.php

  1. <?php
  2. class Demo2
  3. {
  4. public function Test()
  5. {
  6. return '當前文件是Demo2.php 。當前文件的類名稱是Demo2';
  7. }
  8. }

這是:inc/lib/demo3.php

  1. <?php
  2. class Demo3
  3. {
  4. public function Test()
  5. {
  6. return '當前文件是Demo3.php 。當前文件的類名稱是Demo3';
  7. }
  8. }

封裝自動加載

文件:autoload.php

  1. <?php
  2. //封裝自動加載
  3. //spl_autoload_register — 注冊給定的函數(shù)作為 __autoload 的實現(xiàn)
  4. try{
  5. spl_autoload_register(function($className){
  6. //1,先將類名空間的分隔符轉為目錄分隔符
  7. $path = str_replace('\\',DIRECTORY_SEPARATOR , $className);
  8. // 測試
  9. // echo $path;
  10. //生成加載類文件名稱
  11. $file =__DIR__.DIRECTORY_SEPARATOR.$path.'.php';
  12. // 測試
  13. // echo $file;
  14. //3,加載這個文件
  15. require $file;
  16. });
  17. }catch(Exception $e){
  18. die($e->getMessage());
  19. }

執(zhí)行文件。。OK完成!

  1. <?php
  2. require 'autoload.php';
  3. use inc\lib\Demo1;
  4. $demo1=new demo1;
  5. echo $demo1->Test();

總結:命名空間相對較簡單,就是他的方法太多。對于我記性差的人來說,知道那么一兩個可以用的就行了。

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

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

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

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

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