PHP基础篇--利用命名空间解决类名问题

//util.php
<?php
namespace com\instance\util;
class Debug{
  static function sayHello(){
      print("Hello,".__NAMESPACE__."\n");
  }
}
//main.php
namespace main;
require_once "util.php";
use com\instance\util;
class Debug {
   static function sayHello(){
      print("Hello,".__NAMESPACE__."\n");
   }
}
Debug::sayHello();
util\Debug::sayHello();

以上两个语句分别输出:

Hello,main

Hello,com\instance\util

所以在不同包名中得类名即使相同也不冲突。

有几个要点需要注意:

1.在一个PHP文件中,namespace语句必须放在第一句。可以测试如下:

<?php
require_once "util.php";
namespace main;
class Debug{}
报错:

Namespace declaration statement has to be the very first statement in the script


2.对于不指定包名的PHP文件,可以假定其位于根命名空间的下。通过反斜杠来引用

//global.php
<?php
class Debug{
  static function sayHello(){
      print("Hello,".__NAMESPACE__."\n");
  }
}
//main.php
namespace main;
require_once "global.php";
class Debug {
   static function sayHello(){
      print("Hello,".__NAMESPACE__."\n");
   }
}
Debug::sayHello();
\Debug::sayHello();
输出结果为:

Hello,main

Hello,



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值