PHP的namespace

1. 定义命名空间

namespace Zend\Http\PhpEnvironment;定义一个名称为 Zend\Http\PhpEnvironment 的域名。

在定义了之后,下面所申明的class, interface, const等都是在申明的这个“域”里面的。当引用一个申明了命名空间的包含文件,想要调用这个里面的东西,那就必须:
调整当前脚本也到这个域名里,否则,就得用namesapce的全称。

比如,inc.php 文件:

namespace Zend\Http\PhpEnvironment;
class Bar {}//定义了一个类

当其他文件调用时(访问Foo域):

1、用全称
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();

2、调整脚本到Foo域
namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句
require 'inc.php';
$foo = new Bar();

2. use关键字--使用namespace的别名:


比如说,上面的

// 访问Foo的第一种方法,用全称
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();

用uses后,写法如下:

use \Zend\Http\PhpEnvironment as pe; //定义别名

$foo = new \pe\Bar(); //用短的别名来代替原来的

如果省略后面的as ....,那么,就可以直接用最后一节的文字来代替,比如,上面的:

use \Zend\Http\PhpEnvironment; //定义别名
$foo = new \PhpEnvironment\Bar(); //用短的别名来代替原来的

你可能感兴趣的:(PHP)