圖中標識部分,如果命名空間 ABC被導入為C是什么意思?是指 use A\B\C as C嗎?還有 use A\B\C 這種是否等同于 use A\B\C as C?
2 回答

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
你這里說的
是指 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
TA貢獻1936條經驗 獲得超7個贊
正常情況下我們需要使用命名空間AB下的C類,就需要使用如下語句
use A\B\C as C
這是最完整的寫法。如果沒有同名的C類,那么as C可以省略,因此通常我們直接寫成
use A\B\C
如此而已。
- 2 回答
- 0 關注
- 485 瀏覽
添加回答
舉報
0/150
提交
取消