作成日:2018-12-03, 更新日:2018-12-03
基本
■基本構成の例
├ /mylib
│└ hoge.class.php
└ main.php
名前空間を使わないとき
▼/mylib/hoge.class.php
<?php
class sample {
~ 省略 ~
}
▼main.php
<?php require_once __DIR__ . '/mylib/hoge.class.php'; $hoge = new sample();
名前空間を使うとき1
▼/mylib/hoge.class.php
<?php
namespace Nstest; // 名前空間の指定←これより前で、echoとか出力禁止。処理も禁止。
class sample {
~ 省略 ~
}
▼main.php
<?php require_once __DIR__ . '/mylib/hoge.class.php'; use Nstest\sample; // 使うclassの指定 $hoge = new sample(); // staticとかだったら「sample::〇〇()」も使える
名前空間を使うとき2(クラス名のエイリアス)
▼main.php
<?php require_once __DIR__ . '/mylib/hoge.class.php'; use Nstest\sample as foo; // 別名指定 $hoge = new foo(); // staticとかだったら「foo::〇〇()」で実行させる
※同名のclass名を使うときは必須になると思う。
名前空間を使うとき3(その他)
ひとまずメモのみ
一つのファイルに複数のclass記載
<?php
namespace Mylib {
class hoge {
~ 省略 ~
}
class foo {
~ 省略 ~
}
}
▼main.php
<?php require_once __DIR__ . '/mylib/hoge.class.php'; // それぞれのclassをuseで宣言 use Mylib\hoge; use Mylib\foo; new hoge(); new foo();
一つのファイルでclassを名前空間でくくる
<?php
namespace Mylib {
class hoge {
~ 省略 ~
}
}
namespace Mylib2 {
class hoge {
~ 省略 ~
}
}