TECH I.S.

PHP 名前空間


PHP 名前空間

名前空間は、次の2つの異なる問題を解決する修飾子です。

  1. 連携して実行するクラスをグループ化することで、より良い組織化を可能にします。
  2. 同じ名前を複数のクラスに使用できます。

たとえば、Table、Row、CellなどのHTMLテーブルを記述するクラスのセットがある一方で、Table、Chair、Bedなどの家具を記述する別のクラスのセットもある場合があります。名前空間を使用して、クラスを2つの異なるグループに編成すると同時に、2つのクラスTableとTableが混同されるのを防ぐこともできます。


名前空間の宣言

名前空間は、ファイルの先頭で宣言されます。namespaceキーワード:

構文

Htmlという名前の名前空間を宣言します。

<?php namespace Html; ?>

注:namespace宣言は、PHPファイルの最初でなければなりません。次のコードは無効です。

<?php echo "Hello World!"; namespace Html; ... ?>

このファイルで宣言された定数、クラス、および関数は、HTML名前空間に属します。:

Html名前空間にTableクラスを作成します。

<?php namespace Html; class Table {   public $title = "";   public $numRows = 0;   public function message() {     echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";   } } $table = new Table(); $table->title = "My table"; $table->numRows = 5; ?> <!DOCTYPE html> <html> <body> <?php $table->message(); ?> </body> </html>

さらに整理するために、名前空間をネストすることができます。

構文

Codeという名前空間内でHtmlという名前の名前空間を宣言します。

<?php namespace Code\Html; ?>

名前空間の使用

namespace宣言に続くコードは名前空間内で動作するため、名前空間に属するクラスは修飾子なしでインスタンス化できます。名前空間の外部からクラスにアクセスするには、クラスに名前空間が関連付けられている必要があります。

Html名前空間のクラスを使用します。

<?php $table = new Html\Table() $row = new Html\Row(); ?>

自分で試してみる(準備中です。) »

同じ名前空間の多くのクラスが同時に使用されている場合、namespaceキーワードを使用する方が簡単です。:

Html\qualifierを必要とせずにHtml名前空間のクラスを使用します。

<?php namespace Html; $table = new Table(); $row = new Row(); ?>

自分で試してみる(準備中です。)»


名前空間エイリアス

名前空間またはクラスに別名を付けて、書きやすくすると便利です。これはuseキーワードで行います。:

名前空間にエイリアスを与えます。

<?php use Html as H; $table = new H\Table(); ?>

自分で試してみる(準備中です。)»

クラスにエイリアスを与える:

<?php use Html\Table as T; $table = new T(); ?>

自分で試してみる(準備中です。)»



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細