名前空間について書いていきます。
・namespaceとは
名前空間とも呼ばれ、項目をカプセル化するときに使用します。
これにより、例えば通常同じファイルに同じクラスや関数名、定数名が存在することはできませんが、名前空間を使用することにより、関連するクラスや、インターフェイス、関数、定数などをグループ化することが可能です。また、名前空間を指定しておけば自分が作ったクラスが、サードパーティのクラスや関数などと名前が衝突することを防ぐことができます。
・書き方
namespace 名前空間名;
必ずソースコードの1番先頭で宣言する。「クラス」「インターフェイス」「関数」「定数」が名前空間の影響を受けます。また、namespaceの前にHTMLを記述するとエラーになる。
namespace name1;
function getName(){
return 'tanaka';
}
namespace name2;
function getName(){
return 'kodama';
}
namespaceを宣言すると、その後に記述した関数はその名前空間の関数に属します。
・{}(波カッコ)で囲む方法
namespace name1{
function getName(){
return 'tanaka';
}
}
namespace name2{
function getName(){
return 'kodama';
}
}
・呼び出し方
名前空間\関数名
・名前空間の注意点
名前空間は、範囲を波カッコで囲むと名前空間の範囲の外で命令文を記述することができなくなります。
・useとは
useとは名前空間の拡張機能で、外部のエイリアスやその一部を参照したり、クラス・関数・定数などをインポートするときに使用します。
書き方
use [名前空間または一部・クラス・関数・定数など] as 別名称
フルパスを短縮して、別の名称で定義することが可能。
使用例
place.php
namespace asia\japan\tokyo\shibuya;
function getName(){
return 'shibuya';
}
namespace asia\japan\tokyo\minato;
function getName(){
return 'minato';
}
//phpファイルを読み込む
require_once 'place.php';
//名前空間をインポート
use asia\japan\tokyo as name;
//関数の呼出し
echo name\shibuya\getName();
echo name\minato\getName();
「asia\japan\tokyo 」までをインポートして、名前空間を「name」の名称に指定。
パスを短縮して同名の関数を呼び出すことができます。
間違いやアドバイスなどあれば遠慮なく言ってください
参考文献: