0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

名前空間(namespace)とuseの違いを、例えを用いて初心者にも分かりやすく

Posted at

名前空間(namespace)とuseの違いを、図書館と本の例えを使って説明します。

名前空間(namespace)は図書館のセクション

想像してみてください。大きな図書館があって、その中にはたくさんのセクションがあります。それぞれのセクションには異なる種類の本が並んでいます。

  • 名前空間はそのセクションの名前:
    たとえば、図書館に「科学」セクションと「歴史」セクションがあるとします。これらのセクション名は、名前空間に相当します。科学の本は科学セクション、歴史の本は歴史セクションにあります。
  • 目的:
    「同じタイトルだけど内容が異なる本」(たとえば「地球の成り立ち」というタイトルの科学用の本と歴史用の本)が名前の衝突をしないようにするためです。それぞれの本はセクション名(名前空間)を持つことで、それがどの領域に属しているのかを明確に区別できます。

PHPでの例


namespace Science;

class Earth {
    // 科学セクションに関連したクラス
}

namespace History;

class Earth {
    // 歴史セクションに関連したクラス
}

useは図書館の本を借りる

今度は、あなたが特定のセクションの本を借りて、自分の机に持っていくことを考えてみましょう。

  • useは本を借りる行為:
    あなたが科学セクションから「地球」という本を持ってくると、その本を自分の座る場所で簡単に参照できます。これがuseの役割です。同じ名前の別の本と混同することなく、特定のセクションから特定の本を借りてこれます。
  • 目的:
    各セクションに行く手間を省くために、どの本棚(名前空間)からどの本(クラス)を使うのか、あらかじめ宣言して簡単に使えるようにするものです。

PHPでの例


use Science\Earth as ScienceEarth;
use History\Earth as HistoryEarth;

$earthScience = new ScienceEarth();
$earthHistory = new HistoryEarth();

この例では、useを使って、異なる名前空間にある同じ名前のクラスを区別することができます。それぞれの名前空間からクラスを机の上に置いて、簡単に使うことができるようになっています。

まとめ

  • 名前空間(namespace)は、図書館のセクションのように、同じ名前でも違う内容を整理するためのものです。
  • useは、図書館の特定のセクションから本を借りて、いつでも簡単にアクセスできるようにする方法です。

このように名前空間とuseを図書館のセクションと本の借り方に例えると、どのようにコードを整理し、どのようにそのコードを使いやすくするかイメージしやすくなります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?