文档章节

【PHP】我理解的PHP namespace 命名空间!简单操作实例

RablePHP
 RablePHP
发布于 2016/04/09 16:18
字数 609
阅读 58
收藏 0
1.php
<?php
	//该函数
	function ss(){
		echo " <br>公共空间方法<br>";
	}

	/**
	*  该函数没有在空间内,处于公共空间
	*/
	class A 
	{
		
		function __construct()
		{
			echo "<br>公共:空间中的A类<br>";
		}
	}
2.php
<?php
	##=====================================================
	namespace slike;

	const act="<br>Slike:空间中的act常量<br>";
	$a="111";
	class A 
	{
		private $a=111;
		function __construct()
		{
			echo "<br>Slike:空间中的A类<br>";
		}
	}
	##=====================================================
	namespace peter;
	/**
	* 
	*/
	include "test.php"; //导入一个文件
	class A
	{
		private $c=11222221;
		function __construct()
		{
			echo "<br>Peter:空间中的A类<br>";
		}
	}

	//同样是A类, 来自不同的命名空间
	
	ss(); 				// 经测试 函数 

	$c=new \A(); 		//实例化 引入的公共空间的类

	$a=new \slike\A();	//实例化 slike 空间的 A类

	echo \slike\act; 	//调用 slike 空间的 act 常量

	use slike\A as C; 	//导入 slike空间中的 A 类 并且别名为 C

	$aaa=new C();       //实例化 Slike空间的 A 类  别名 C

	use slike;			//导入 slike 命名空间

	$aaaa=new slike\A(); //实例化 slike 空间中的 A 类

	$aa=new \peter\A();	//调用了 peter 空间的 A 类

    访问:2.php 结果是(我手动将输出结果和你们对应):

公共空间方法                     ss(); 		// 经测试 函数 

公共:空间中的A类                $c=new \A(); 		//实例化 引入的公共空间的类

Slike:空间中的A类               $a=new \slike\A();	//实例化 slike 空间的 A类

Slike:空间中的act常量           echo \slike\act; 	//调用 slike 空间的 act 常量

Slike:空间中的A类             use slike\A as C; 	//导入 slike空间中的 A 类 并且别名为 C

Slike:空间中的A类            use slike;	//导入 slike 命名空间      $aaaa=new slike\A(); //实例化 slike 空间中的 A 类

Peter:空间中的A类            $aa=new \peter\A();	//调用了 peter 空间的 A 类



    二。说几个命名空间的所谓 限定名称 以及 非限定名称

    

namespace slike;

class A{}     // A类



namespace peter;

//如果在在其他空间使用 则

$a=new slike\A();    //非限定名称  解析为   peter\slike\A       显然报错

$a=new \slike\A(); //限定名称     解析为    slike\A   这次对了


use slike\A        //导入slike A类 

$a=new A();    //解析为     slike\A   这是可以访问的。但是不排除  peter 中 有 A类 冲突报错


use slike\A as C   //导入 slike A 类   更名 为  C

$a=new C();    //解析为  slike\A   这也是对的。 但不排除 peter 中有 C类 冲突报错


反正我是没明白。搞个什么 限定名称 和非限定 有什么用。


© 著作权归作者所有

RablePHP
粉丝 15
博文 47
码字总数 11895
作品 0
巴南
程序员
私信 提问
深入理解自动加载(一)

自动加载是一个非常核心的功能。在没有自动加载的时候,引用某个文件,常常需要一个很长的列表(需要把用到的)。 先用一个简单的样例:autoload() 可以做到当在实例化某个没有的类的时候,会...

熊猫88
2015/12/11
73
0
【PHP】PSR简要规范

【PHP】PSR简要规范 代码规范 php 一鸣 PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,...

Yomut
2016/05/30
61
0
复习PHP-语言参考-命名空间

1.定义命名空间 命名空间只作用于类,函数,常量。(注意只能是const的常量,而不能是define出来的常量,我测试是报错的。) 通过namespace 声明。 必须在所有代码之前声明。 2.定义子命名空...

qzd1989
2014/05/02
0
0
PHP之新手自学基础知识(六)——拓展篇之命名空间

命名空间概述 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮...

天谴残魂
2018/01/09
0
0
PHP之命名空间

从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。这个原理应...

jjjssswww
2017/06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux输入法fcitx的安装问题

Fcitx 总共要安装的包如下 fcitxfcitx-binfcitx-config-commonfcitx-config-gtk | fcitx-config-gtk2fcitx-datafcitx-frontend-allfcitx-frontend-gtk2fcitx-frontend-gtk3......

CHONGCHEN
今天
4
0
网络基础

前言: 最近整理一些以前的学习笔记(有部分缺失,会有些乱,日后再补)。 过去都是存储在本地,此次传到网络留待备用。 计算机网络的功能: 1.数据通信; 2.资源共享; 3.增加数据可靠性; 4....

迷失De挣扎
今天
7
0
spring boot升级到spring cloud

1、先升级spring boot 版本到2.1.3 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.1.3.RELEAS......

moon888
今天
12
0
从蓝鲸视角谈DevOps

DevOps源于Development和Operations的组合 常见的定义 DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变...

嘉为科技
今天
1
0
微服务设计 笔记

微服务设计 一、微服务架构理论 1.六边形架构 1)六边形架构(Hexagonal Architecture),又称为端口和适配器架构风格;使用适配器与外界进行交互,外界通过应用层API与内部进行交互。 2)经典...

啃不动地大坚果
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部