博客列表 >命名空间学习

命名空间学习

手机用户1576673622
手机用户1576673622原创
2020年02月12日 12:02:04605浏览

1.演示四类全局成员的访问、导入和别名引用;

  1. //ap.php;
  2. namespace A\one;
  3. //常量define
  4. define('CON',['con'=>'const','def'=>'define']);
  5. //常量const
  6. const CONA=0;
  7. //接口
  8. interface I{
  9. public static function i_f(string $str):void;
  10. }
  11. //类
  12. class C{
  13. const CONS=1;
  14. public static function c_f(string $str):void{
  15. echo static::class.'=>'.$str.'</br>';
  16. }
  17. }
  18. //函数
  19. function F(){
  20. echo __FUNCTION__.'</br>';
  21. }
  22. /*------------------------------------------------*/
  23. //bp.php;
  24. namespace B;
  25. //导入命名空间A\one,及别名引用
  26. use A\one\I as A1;
  27. use A\one\C as C1;
  28. use function A\one\F as F1;
  29. use const A\one\CONA;
  30. require 'ap.php';
  31. //interface
  32. class C implements A1{
  33. public static function i_f(string $str):void{
  34. echo static::class.'=>'.$str.'</br>';
  35. }
  36. }
  37. echo '接口非限定';
  38. (new namespace\C())->i_f('str');
  39. //class
  40. echo '类非限定:';
  41. $c=C1::c_f('str');
  42. echo '类完全限定:';
  43. $c=\A\one\C::c_f('str');
  44. //function
  45. echo '函数非限定:';
  46. F1();
  47. echo '函数完全限定:';
  48. \A\one\F();
  49. //const
  50. echo '常量const非限定:';
  51. echo 'CONA='.CONA.'</br>';
  52. echo '常量const完全限定:';
  53. echo 'CONA='.\A\one\CONA.'</br>';
  54. echo '类常量:';
  55. echo 'CONS='.C1::CONS.'</br>';
  56. //define
  57. echo '常量define完全限定:';
  58. echo "CON['def']=".\CON['def'].'</br>';

2.命名空间常见的一些术语

  • 1.完全限定名称:从全局空间开始查找成员的名称,类似绝对路径。在名称前有或无 \
  • 2.限定名称:限定名称可看作是完全限定名称的子集;名称前至少有一个’\’,而且这个\不是第一个字符.
  • 3.非限定名称:仅在当前空间中查找成员,类似当前路径。名称前面无\.
  • 4.完全限定名称转成非完全限定名称方法: 事先导入use spacename;
  • 5.完全限定名称转成非限定方法:事先导入use spacename\class;
  • 6.限定名称/非限定名称转成完全限定名称: ::class|spacename\class;
  • 6.use:解决了命名空间中的命名冲突问题
  • 7.::class操作符和__NAMESPACE__魔术常量区别:__NAMESPACE__可以返回当前命名空间;不是真正意义的常量,不能设置,根据当前空间内容的不同,而不断变化.::class可以解析/反射出类的完全限定名称,快速生成完全限定名称的类名。
    1. __NAMESPACE__适用于求当前命名空间名
    2. ::class 可用于任何命名空间求任何类完全限定名
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议