1.命名空间namespace
含义:封装事物的方法
作用:解决名字冲突的问题。
注意:1.当在字符串中使用命名空间名字的时候,一定不要忘了转义\
2.所有在非用户定义的命名空间中的声明(类、函数、常量),都默认的属于全局命名空间。
用法(定义命名空间):
Namespace 空间名字{
class Test{
}
}
注意:1.没有空间名字则表示 全局空间的代码块
一个文件中定义多个命名空间:
<?php
namespace MyNamespace {
}
namespace MySecondNamespace {
}
namespace {
}
我们也可以将一个命名空间分散在不同的文件中,文件包含的处理程序会自动合并他们。因此,限制大量的命名空间在同一个文件中定义是一个很好的编程实践,就像我们通常单独为每个类定义一个单独的文件一样
namespace必须声明在所有代码的最前面
调用:
<?php//文件名a1.php
/*
* 命名空间 namespace
*/
namespace lovo;
class TestNamespace{
public function test(){
echo '掉用了我';
}
}
?php//第2个PHP
// namespace必须声明在所有代码的最前面
//namespace lovo;
require_once('a1.php');
// 使用use可以指定加载的命名空间及其对应的类,同时在类名后面可以使用as关键字指定某个类的别名
// 一旦起了别名后,在当前文件中就可以使用这个别名来创建对应的类的对象
use lovo\TestNamespace as MyTest;
$test4 = new \lovo\TestNamespace();
$test5 = new MyTest();
$test5->test();
var_dump($test5);
注意:PHP并不支持命名空间的嵌套定义
一个文件可以定义多个命名空间