作成日: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 { ~ 省略 ~ } }