第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

php中同時使用多個use導入命名空間時的問題

php中同時使用多個use導入命名空間時的問題

蕪湖不蕪 2019-03-20 22:15:18
<?phpnamespace app\models;use yii\db\ActiveRecord;class Country extends ActiveRecord{}這是模型類定義代碼<?phpnamespace app\controllers;use yii\web\Controller;use yii\data\Pagination;use app\models\Country;class CountryController extends Controller{    public function actionIndex()    {        $query = Country::find();        $pagination = new Pagination([            'defaultPageSize' => 5,            'totalCount' => $query->count(),        ]);        $countries = $query->orderBy('name')            ->offset($pagination->offset)            ->limit($pagination->limit)            ->all();        return $this->render('index', [            'countries' => $countries,            'pagination' => $pagination,        ]);    }}**這是調用模型類的控制器代碼請問模型類里面明明namespace是app\models,那么為什么控制器里面要use app\models\Country而不是use app\models呢?這是因為在他之前還有其他use語句還是因為什么?我看了很多關于php命名空間的教程都沒講到過這個問題,求各位大神解答。**
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

php的命名空間是不支持*這種方式的,c#中支持use app.models.*就可以引入model下所有的類,但是php是不支持的(詳情要去看autoload方法,看完就明白了),必須要引入到具體的類


查看完整回答
反對 回復 2019-04-21
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

namespace Your\Namespace\Name;


use It\Is\Class\Name; //調用這個類,而不是調用一個命名空間

use It\Is\Class\MyClass AS OuterClass; //因為MyClass和聲明的類重名,使用AS定義別名


/**

 * 全名 \Your\Namespace\Name\MyClass

 * extend Name 等價于 extend \It\Is\Class\Name,如果你不寫use It\Is\Class\Name;這句的話

 */

class MyClass extend Name {


    use Alert; //調用方法

    

    public function demo() {

        $obj = new OuterClass(); //相當于 new \It\Is\Class\MyClass()

        $obj = new Object(); //代表 \Your\Namespace\Name\Object;

        $obj = new Demo\Object(); //代表 Your\Namespace\Name\Demo\Object;

        //根據(jù)以上兩句你應該明白了,namespace是指明該文件所處的命名空間,如果按照你的理解 use 后面是命名空間的話,那么當前文件就同時隸屬于不同的命名空間了,會發(fā)生混亂。

    }


}

trait Alert { //全名為\Your\Namespace\Name\Alert


    public function vardump() {

        var_dump($this);

    }

}

$obj = new MyClass();

$obj->vardump();


查看完整回答
反對 回復 2019-04-21
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

注意:
php中use是可以引入命名空間或者接口。
所以,這里直接引入一個類要方便些。

查看完整回答
反對 回復 2019-04-21
  • 3 回答
  • 0 關注
  • 1342 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號