php use namespace 到底是怎么一回事

namespace

PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

示例:

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

<?php
	namespace my\name; 			// 参考 "定义命名空间" 小节

	class MyClass {}
	function myfunction() {}
	const MYCONST = 1;

	$a = new MyClass;
	$c = new \my\name\MyClass; 	// 参考 "全局空间" 小节

	$a = strlen('hi'); 			// 参考 "使用命名空间:后备全局函数/常量" 小节

	$d = namespace\MYCONST; 	// 参考 "namespace操作符和__NAMESPACE__常量” 小节

	$d = __NAMESPACE__ . '\MYCONST';
	echo constant($d); 			// 参考 "命名空间和动态语言特征" 小节
?>

[/pcsh]

use

PHP中,别名是通过操作符

use

来实现的

所有支持命名空间的PHP版本支持三种别名或导入方式:为类名称使用别名、为接口使用别名或为命名空间名称使用别名。PHP 5.6开始允许导入函数或常量或者为它们设置别名。

 

参考文献:

http://www.php.net/manual/zh/language.namespaces.rationale.php

 

此处评论已关闭