PHP 名前空間
PHP 名前空間
名前空間は、次の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
宣言に続くコードは名前空間内で動作するため、名前空間に属するクラスは修飾子なしでインスタンス化できます。名前空間の外部からクラスにアクセスするには、クラスに名前空間が関連付けられている必要があります。
同じ名前空間の多くのクラスが同時に使用されている場合、namespace
キーワードを使用する方が簡単です。:
例
Html\qualifierを必要とせずにHtml名前空間のクラスを使用します。
<?php
namespace Html;
$table = new Table();
$row = new Row();
?>
名前空間エイリアス
名前空間またはクラスに別名を付けて、書きやすくすると便利です。これはuse
キーワードで行います。:
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。