摘要:<?php//全局空间显示,不写名称即可//__NAMESPACE__在命名空间中的代码显示实例namespace one;//常量const SITE = '我的网站';//函数function hello(){ return '学习使人进步!';}//类class House{ public static $area =133;}echo '当前空
<?php
//全局空间显示,不写名称即可
//__NAMESPACE__在命名空间中的代码显示实例
namespace one;
//常量
const SITE = '我的网站';
//函数
function hello()
{
return '学习使人进步!';
}
//类
class House
{
public static $area =133;
}
echo '当前空间名称是:',__NAMESPACE__,'<br>';
echo '访问常量:',namespace\SITE,'<br>';
echo '访问函数:',hello(),'<br>';
echo '访问类:',House::$area,'<br>';
echo '<hr>';
namespace two;
//引用one中的内容,可以直接访问
// use one\House;
const DOMAIN ='www.php.cn';
echo '当前命名空间是:',__NAMESPACE__,'<br>';
echo '域名是:',DOMAIN,'<br>';
//全局空间用反斜线
echo '访问命名空间one中的常量:',\one\SITE,'<br>';
echo '面积:',\one\House::$area,'<br>';
// //子空间中定义的函数可以和系统函数重名
// //声明MyProjectOne空间
// namespace MyProjectOne
// {
// //输出MyProjectOne
// echo __NAMESPACE__,'<br>';
// class F
// {
// public static function index()
// {
// return __METHOD__;
// }
// }
// //子空间声明和系统函数同名的函数
// //在命名空间中,当前函数优先于系统全局函数的执行,全局函数加反斜线
// function var_dump($name)
// {
// echo '我是子命名空间中的和系统函数重名的var_dump()函数:' . $name;
// }
// // //输出自定义子命名函数
// // var_dump();//等于\MyProjectOne\var_dump();
// $name = 'php中文网';
// echo '<hr>';
// //系统函数
// var_dump($name);//全局函数调用加反斜线:\var_dump($name)
// echo '<hr>';
// }
// //声明MyProjectTwo空间
// namespace MyProjectTwo
// {
// echo __NAMESPACE__,'<br>';
// class H
// {
// public static function index()
// {
// return __METHOD__;
// }
// }
// //访问全局中的Q中的index()方法无法访问,必须加反斜线
// echo \Q::index();
// }
// //声明全局命名空间
// namespace
// {
// echo strlen(__NAMESPACE__),'<br>';
// //全局中声明方法
// class Q
// {
// public static function index()
// {
// return __METHOD__;
// }
// }
// //全局状态下访问子空间MyProjectOne空间和MyProjectTwo空间,可以直接访问
// echo MyProjectOne\F::index(),'<br>';
// echo MyProjectTwo\H::index(),'<br>';
// }
魔术常量__NAMESPACE__的值是包含当前命名空间名称的字符串。关键字 namespace引用当前空间,可用来显式访问当前命名空间或子命名空间中的元素,它等价于类中的 self 操作符。
批改老师:天蓬老师批改时间:2019-01-27 08:51:50
老师总结:导入外部空间, 本质是给一个空间起个别名罢了, 切记, 空间别名, 不能代替文件加载语句