登录  /  注册
博主信息
博文 94
粉丝 0
评论 0
访问量 111391
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
【PHP】命名空间和自动加载
可乐随笔
原创
1726人浏览过

命名空间和自动加载

1.命名空间

  1. <?php
  2. //空间别名
  3. namespace ns1;
  4. // echo \ns1\ns2\Demo1::hello() .PHP_EOL;
  5. // echo ns2\Demo1::hello() .PHP_EOL;
  6. // echo ns2\ns3\Demo1::world() .PHP_EOL;
  7. //简化命名空间名称: use
  8. use \ns1\ns2\Demo1 as D1;
  9. use \ns1\ns2\ns3\Demo1 as D2;
  10. echo D1::hello() .PHP_EOL;
  11. echo D2::world() .PHP_EOL;
  12. namespace ns1\ns2;
  13. class Demo1{
  14. public static function hello()
  15. {
  16. return __METHOD__ .'()';
  17. }
  18. }
  19. namespace ns1\ns2\ns3;
  20. class Demo1{
  21. public static function world()
  22. {
  23. return __METHOD__ .'()';
  24. }
  25. }

2.类的自动加载

  1. <?php
  2. // 类的自动加载
  3. // 原理:将命名空间,映射到类文件的路径上
  4. // 1.类名 <->类文件名
  5. // 2.类空间 <-> 类文件的路径
  6. namespace zhu;
  7. // 传统
  8. // require __DIR__ . '/admin/controller/Index.php';
  9. // require __DIR__ . '/admin/model/User.php';
  10. // require __DIR__ . '/admin/view/index/Hello.php';
  11. // 注册类的自动加载器
  12. spl_autoload_register(function ($class) {
  13. // echo $class . PHP_EOL;
  14. // 类名:admin\controller\Index
  15. // 类文件名: admin\controller\Index.php
  16. // 将路径分隔符替换"
  17. $path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
  18. // echo $path .PHP_EOL;
  19. $file = __DIR__. '/' . $path. '.php';
  20. if (is_file($file) && file_exists($file))
  21. {
  22. require $file;
  23. } else {
  24. die($file . '不存在');
  25. }
  26. });
  27. use admin\controller\Index;
  28. use admin\model\User;
  29. use admin\view\index\Hello;
  30. echo Index::show() .PHP_EOL;
  31. echo User::show() .PHP_EOL;
  32. echo Hello::show() .PHP_EOL;
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学