php namespace命名空间

据个人理解,用到所需要的类时,需要先require或include引入,所以会发生类重定义的错误的前提是:两个相同命名的类都有被引入。目前有些php框架会自动加载(即include)所有新建的model类,所以为了避免你新建的model类和项目框架原生的核心类发生重名冲突,采用了namespace。

首先若引入两个相同的类则会显示: Fatal error: Cannot redeclare class Box in D:\wamp\www\namespace\B.php on line 3,
报错,现在则需要加入namespace,让系统区分两个类文件。
首先这是A.php文件
<?php
	namespace a\b;
	class Box{
		
		public function get_Userinfo(){
			echo "this is A";
		}
	}

这个为B.php文件

<?php
	namespace a\c;
	class Box{
		
		public function get_Userinfo(){
			echo "this is B";
		}
	}

两个类名相同则使用不同的命名空间,并使用use用于缩短命名空间

        require_once("./A.php");
	require_once("./B.php");
	
	use a\b\Box;
	use a\c\Box as BBox;
	
	$a = new Box();
	$a->get_Userinfo();
	
	echo "<br/>";
	
	$b = new BBox();
	$b->get_Userinfo();

没有定义命名空间,就理解为使用顶级命名空间。new类时,可以在类前加上反斜杠\,也可以不加。

<?php
	class Box{
		
		public function get_Userinfo(){
			echo "this is C";
		}
	}
<?php
        c = new \Box();
	$c->get_Userinfo();

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值