第10章 オブジェクト指向構文 / 第4回 模擬試験
PHPの名前空間のインポートに関する次の記述のうち、正しいものはどれか。
`use App\Models\User as UserModel;`のように、`as`でクラスに別名を付けられる。
正解
`use`命令はクラスだけでなく、変数のインポートにも使用する。
名前空間をインポートすると、元のクラス定義ファイルの中身が書き換わる。
1つのファイルにつき`use`は1回しか使用できない。
解説
`use 名前空間クラス名 as 別名;`のように`as`を使うと、インポートしたクラスに別名(エイリアス)を付けて参照できます。同名クラスの衝突を避けたい場合などに便利です。
他の選択肢が誤りである理由は次の通りです。
・名前空間の文脈での`use`命令は、クラス・関数・定数をインポートするためのものです(変数のインポートには使いません)。
・`use`でクラスをインポートしても、インポート元のクラス定義ファイルの中身が書き換わることはありません。単に現在のファイルから短い名前で参照できるようにするだけです。
・`use`は1つのファイル内で、インポートしたいクラスの数だけ複数回記述できます。
例:
```
namespace AppHttpControllers;
use AppModelsUser as UserModel;
use AppModelsPost;
class UserController {
public function show(UserModel $user) {}
}
```
(参照: 独習PHP 第4版 第10章 オブジェクト指向構文 10.9.3節 インポート p.575〜577)