php手册中不理解的导入

https://img1.mukewang.com/5c8f69210001d20608000332.jpg

图中标识部分,如果命名空间 ABC被导入为C是什么意思?
是指 use A\B\C as C吗?
还有 use A\B\C 这种是否等同于 use A\B\C as C?

拉莫斯之舞
浏览 467回答 2
2回答

叮当猫咪

你这里说的 是指 use ABC as C吗?是对的, 然后 还有 use ABC 这种是否等同于 use ABC as C? 是等效的; 我来说一下为什么会用use ABC as C这种情况,可能才有意义; 举个例子: namespace Hello{ class Test { public function test() { echo 'Hello\Test'; } } } namespace World{ class Test { public function test() { echo 'World\Test'; } } } 这里是两个命名空间,假设在要同时引入这两个命名空间; use Hello\test; use World\test; 在调用的时候 (new Test())->test(); 我其实是不知道到底是调用的那个命名空间的,会引发歧义,所以我也就需要用到别名引入了: use Hello\Test as TestA; use Hello\Test as TestB; 然后 (new TestA())->test(); (new TestB())->test(); 就很清晰明了了。然后,为什么说等同呢,实际上就是 (new Hello\Test())->test(); (new World\Test())->test(); 这也就是文中提到的转换的意思,也就是会转换成如上代码。

LEATH

正常情况下我们需要使用命名空间AB下的C类,就需要使用如下语句 use A\B\C as C 这是最完整的写法。如果没有同名的C类,那么as C可以省略,因此通常我们直接写成 use A\B\C 如此而已。
打开App,查看更多内容
随时随地看视频慕课网APP