PHP类基础(16)之命名空间

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42380348/article/details/100560729
  1. php中的命名空间:是一种代码封装技术,能够有效避免各种名称的重复
  2. namespace:一种流行的代码封装技术
  3. 命名空间主要针对脚本中的函数、常量和类成员
  4. 命名空间可以进行分层
  5. 命名空间可以互相引用
  6. 如果两个命名空间中的类重名那可以进行别名处理
<?php 
//php中的命名空间:代码封装技术
// namespace 一种流行的代码封装技术
//命名空间针对脚本中的函数、常量和类成员
namespace test1;
const SITE_NAME = '小楠博客';//声明常量SITE_NAME
function sum($n,$m){//声明函数sum
	return $n+$m;
}
class Staff{
	private $name = 'anan';
	public function __get($name){
		return $this->$name;
	}
	public function __set($name,$value){
		return $this->$name = $value;
	}
}
namespace test2;
//在当前命名空间引入其他空间类成员
use test1;//只定位到空间,不定位到类
//因为test1中的类和test2中的类重名,所以这里起别名
use test1\Staff as test1Staff;//定位到空间的类
use test2\test3\Demo; //分层,直接定位到类
const SITE_NAME = '小北博客';//声明常量SITE_NAME
function sum($n,$m){//声明函数sum
	return $n+$m;
}
class Staff{
	private $name = 'anan';
	public function __get($name){
		return $this->$name;
	}
	public function __set($name,$value){
		return $this->$name = $value;
	}
}

echo '当前命名空间:'.__NAMESPACE__;
echo "<hr>";
echo SITE_NAME; //非限定名称的命名空间
echo "<hr>";
echo sum(10,30);
echo "<hr>";
$obj = new Staff;
echo $obj->name;
//想访问test1中的属性
echo "<hr><hr><hr><hr>";
echo \test1\SITE_NAME; //完全限定名称的命名空间
// $obj = new test1\Staff;
$obj = new test1Staff;//因为已经将test1引入test2空间中,并起了别名,所以这里可以直接写别名
echo "<hr>";
echo $obj->name;

// 命名空间可分层
namespace test2\test3;
class Demo{
	const city = '合肥';
}
echo "<hr>";
echo Demo::city;
?>

猜你喜欢

转载自blog.csdn.net/weixin_42380348/article/details/100560729