php另一个命名空间的函数,PHP 引用命名空间中的类或函数

示例

如声明命名空间中所示,我们可以在命名空间中定义一个类,如下所示:

namespace MyProject\Shapes;

class Rectangle { ... }

要引用该类,需要使用完整路径(包括名称空间):

$rectangle = new MyProject\Shapes\Rectangle();

可以通过use-statement导入类来缩短此时间:

// 矩形成为MyProject \ Shapes \ Rectangle的别名

use MyProject\Shapes\Rectangle;

$rectangle = new Rectangle();

对于PHP 7.0,您可以use使用方括号将各种-statement组合在一个语句中:

use MyProject\Shapes\{

Rectangle,         //与`use MyProject \ Shapes \ Rectangle`相同

Circle,            //与`use MyProject \ Shapes \ Circle`相同

Triangle,          //与`use MyProject \ Shapes \ Triangle'相同

Polygon\FiveSides, //您也可以导入子命名空间

Polygon\SixSides   //在分组的“使用”陈述中

};

$rectangle = new Rectangle();

有时两个类具有相同的名称。如果它们位于不同的命名空间中,这不是问题,但是当尝试使用use-statement导入它们时可能会成为问题:

use MyProject\Shapes\Oval;

use MyProject\Languages\Oval; // 显然椭圆形也是一种语言!

// 错误!

这可以通过使用as关键字自己为别名定义名称来解决:

use MyProject\Shapes\Oval as OvalShape;

use MyProject\Languages\Oval as OvalLanguage;

要引用当前名称空间之外的类,必须使用进行转义\,否则从当前名称空间采用相对名称空间路径:

namespace MyProject\Shapes;

//引用MyProject \ Shapes \ Rectangle。正确!

$a = new Rectangle();

//引用MyProject \ Shapes \ Rectangle。正确,但不需要!

$a = new \MyProject\Shapes\Rectangle();

//引用MyProject \ Shapes \ MyProject \ Shapes \ Rectangle。不对!

$a = new MyProject\Shapes\Rectangle();

// 从名称空间中引用StdClass需要一个\前缀

// 因为它不是在名称空间中定义的,所以它是全局的。

//引用StdClass。正确!

$a = new \StdClass();

//引用MyProject \ Shapes \ StdClass。不对!

$a = new StdClass();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值