亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php手冊中不理解的導入

php手冊中不理解的導入

PHP
拉莫斯之舞 2019-03-13 22:46:25
圖中標識部分,如果命名空間 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();

這也就是文中提到的轉換的意思,也就是會轉換成如上代碼。

查看完整回答
反對 回復 2019-03-18
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

正常情況下我們需要使用命名空間AB下的C類,就需要使用如下語句

use A\B\C as C

這是最完整的寫法。如果沒有同名的C類,那么as C可以省略,因此通常我們直接寫成

use A\B\C

如此而已。

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 485 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號