加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php命名空间 动态 new

发布时间:2022-11-30 12:35:29 所属栏目:PHP教程 来源:
导读:  PHP的命名空间(namespace)是PHP 5.3中加入最重要的一个新特性PHP命名空间,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。

  一.动态访问命名空间的元素

  namespace me\p
  PHP的命名空间(namespace)是PHP 5.3中加入最重要的一个新特性PHP命名空间,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。
 
  一.动态访问命名空间的元素
 
  namespace me\poet;
 
  function test()
 
  {
 
  echo '1111';
 
  }
 
  $fun = 'test';//不能这么用,最后$fun()无法动态调用到test():Fatal error: Call to undefined function test()
 
  $fun = '\me\poet\test';//正确
 
  //$fun = 'me\poet\test';//正确
 
  $fun();
 
  也就是说,动态调用必须是 限定名称 或 完全限定名称(概念参考:PHP命名空间的使用基础)
 
  二.魔术常量 和 操作符
 
  namespace me\poet;
 
  function test()
 
  {
 
  echo '1';
 
  }
 
  echo __NAMESPACE__;//魔术常量:命名空间的名称(输出 me\poet)
 
  //namespace操作符:显式访问当前命名空间或子命名空间中的元素,等价于类中的self操作符
 
  \me\poet\test();
 
  namespace\test();
 
  //上两行代码等价。
 
  三.别名、导入 和 全局空间(含多个例子)
 
  namespace ws\weichen\www;
 
  use ws\weichen\www as poet;//定义别名poet
 
  //use ws\weichen\www; //不加as,则取最后的作为别名(www)
 
  function demo()
 
  {
 
  echo '1';
 
  }
 
  \ws\weichen\www\demo();
 
  poet\demo();
 
  //www\demo();//不加as的情况,则这样调用
 
  以上三行代码效果一样。
 
  按规则(ws\weichen\www)命名的好处:若更换域名,只要把前缀名称改了就可以,不影响后面代码中别名www的使用。
 
  /* 导入 */
 
  include 'hello.class.php';
 
  use \ws\weichen\www;
 
  use \Hello;
 
  /*--------------------------------------------------------*/
 
  /* 支持多个use语句 */
 
  use \nihao\shijie as hello, \ws\weichen\www;
 
  /*--------------------------------------------------------*/
 
  /* 全局空间:反斜线调用 */
 
  namespace A\B\C;
 
  //这个函数是 A\B\C\fopen();
 
  function fopen()
 
  {
 
  $f = \fopen('demo.txt');//调用全局fopen函数
 
  return $f;
 
  }
 
  本文原创发布php中文网,转载请注明出处,感谢您的尊重!
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!