博客列表 >2.10号作业

2.10号作业

-   迷舍人
- 迷舍人原创
2020年02月12日 10:58:39673浏览

完全限定名称访问四类全局成员的方式

  1. // 1非限制名称:类名称前不允许有反斜线
  2. // $result = demo1::index();
  3. $result = namespace\demo1::index();
  4. echo '<pre>'.print_r($result,true).'</pre>';
  5. echo '<hr>';
  6. // 2使用完全限定名称 访问具有完整命名空间的成员
  7. require 'demo3.php';
  8. // 完全限定名称的类名,必须要从全局空间进行查询
  9. $result2 = \chapter1\lib\demo1::index();
  10. echo '<pre>'.print_r($result2,true).'</pre>';
  11. // 3使用限定名称来访问具有空间的成员
  12. // 限定名称,可以看作是完全限定名称的一个子集
  13. // 只要一个类名称前面至少有一个 \ ,而且这个 \ 不是第一个字符,他一定是限定名称
  14. echo '<hr>';
  15. require 'demo4.php';
  16. class test implements api\itest
  17. {
  18. public static function hello()
  19. {
  20. return self::class;
  21. }
  22. }
  23. $result3 = class_implements(test::hello());
  24. echo '<pre>'.print_r($result3,true).'</pre>';
  25. // 4命名空间常量
  26. // echo __NAMESPACE__;
  27. // call_user_func(['类名','类中的静态方法']);
  28. echo '<hr>';
  29. $result4 = call_user_func([__NAMESPACE__.'\lib\demo1','index']);
  30. echo '<pre>'.print_r($result4,true).'</pre>';

导入四类全局全局成员的方式

  1. namespace chapter1;
  2. // 1导入完全限定名称的类
  3. use chapter1\lib\demo1;
  4. require 'demo3.php';
  5. $result = demo1::index();
  6. // 2导入完全限定名称的接口
  7. require 'demo4.php';
  8. use chapter1\api\itest;
  9. class test implements itest
  10. {
  11. public static function hello()
  12. {
  13. return class_implements(self::class);
  14. }
  15. }
  16. $result = test::hello();
  17. // 3导入完全限定名称的函数
  18. require 'demo5.php';
  19. use function chapter1\common\getinfoname;
  20. $result = getinfoname();
  21. // 4导入完全限定名称的常量
  22. require 'demo6.php';
  23. use const chapter1\param\name;
  24. $result = name;
  25. // use 导入命名空间
  26. use chapter1\lib;
  27. $result = lib\demo1::index();

全局成中的别名引用方式

  1. // 别名机制
  2. class user
  3. {
  4. }
  5. require 'demo8.php';
  6. use chapter1\admin\user as userclass;
  7. $result = userclass::name();
  8. echo '<pre>'.print_r($result,true).'<pre>';

完全限定名称, 限定名称与非限定名称

非限定用use | 完全限定:命名空间根目录相同即可

use 解决了什么什么?

声明使用某个命名空间中的类

::class操作符为什么比NAMESPACE好用? 具体应用场景有哪些?

我觉得更简洁。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议