名前空間
<?php declare(strict_types=1); ?>
<body>
<?php
require_once dirname(__FILE__) . '/ofice/word/Writer.php';
require_once dirname(__FILE__) . '/ofice/excel/Writer.php';
// new 名前空間\クラス名
$writer = new \Ofice\Word\Writer();
$writer->write();
$writer = new \Ofice\Excel\Writer();
$writer->write();
?>
</body>
<?php
declare(strict_types=1);
// namespace 名前空間\サブ名前空間
namespace Ofice\Excel;
// Excelファイルの書き出しクラス
class Writer
{
// Excelファイルに書き出すメソッド
public function write() : void
{
print 'excel ファイルを書き出す。' . PHP_EOL;
}
}
<?php
declare(strict_types=1);
// namespace 名前空間\サブ名前空間
namespace Ofice\Word;
// Wordファイルの書き出しクラス
class Writer
{
// Wordファイルに書き出すメソッド
public function write() : void
{
print 'word ファイルを書き出す。' . PHP_EOL;
}
}
出力結果:word ファイルを書き出す。 excel ファイルを書き出す。
名前空間を定義する → namespace 名前空間 ;
サブ名前空間を定義 → namespace 名前空間 \ サブ名前空間1 \ サブ名前空間2 ;
// ----------------- 名前空間 [ ofice ] -------------------------
//
// //////////////////////////////////////////////////////
// // サブ名前空間[ Word ] —— Writerクラス、 Readerクラス
// /////////////////////////////////////////////////////
//
// //////////////////////////////////////////////////////
// //サブ名前空間[ Excel ] —— Writerクラス、 Readerクラス
// //////////////////////////////////////////////////////
//
// ----------------------------------------------------------------
名前空間を使ってクラスをカテゴリーわけができる。
名前空間に所属するクラスを呼び出す → 名前空間 \ クラス名
\Ofice\Word\Writer のように、名前空間をルートからたどる書式を「 完全修飾名 」(絶対パス)という。
□ 相対パスでクラスを呼び出す □
<?php
declare(strict_types=1);
namespace Ofice;
require_once dirname(__FILE__) . '/word/Writer.php';
require_once dirname(__FILE__) . '/excel/Writer.php';
class File
{
public function setWordProperty() : void
{
$writer = new Word\Writer();
$writer->write();
}
public function setExcelProperty() : void
{
$writer = new Excel\Writer();
$writer->write();
}
}
<?php declare(strict_types=1); ?>
<body>
<?php
require_once dirname(__FILE__) . '/ofice/File.php';
$file = new \Ofice\File();
$file->setExcelProperty();
$file->setWordProperty();
?>
</body>
出力結果:excel ファイルを書き出す。 word ファイルを書き出す。
呼び出し元のプログラムファイルが名前空間[ Ofice ]に所属するような場合は、自分の名前空間を起点に[ Word\Writer ]
のように相対パスで指定すことが可能。
相対パスと絶対パスの違いは → 先頭に \ があるかないか
コメント
あとすこしあとすこし。。。オブジェクト指向。。
この記事が気に入ったらサポートをしてみませんか?