Blogger Information
Blog 29
fans 0
comment 0
visits 19791
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
命名空间学习
手机用户1576673622
Original
606 people have browsed it

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 可用于任何命名空间求任何类完全限定名
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:你的博客中为什么只有一个作业?
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post