名前空間について その4

ヒューマンリソシア 2016/1/15(金) 17:16 tweet12このエントリーをはてなブックマークに追加 印刷用
※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「名前空間について その4」を公開しました。
今回は、より実践的なところや、「出来るけどやるには細心の注意が必要」なところなど、
いくつかより込み入った辺りに踏み込んでみましょう。

さて。色々と名前空間について見てきました。
次回、ラストは、少し「出来るけど推奨されない所」など、更にもうちょっと突っ込んだ所に踏み込んでみましょう。

まず、先に定数についてやっていきたいと思います。
名前空間を意味する __NAMESPACE__ という定数があります。実際に、動かしてみましょう。

(my.php)
namespace my {
var_dump( __NAMESPACE__ );
}

require_once(‘my.php’);
//
var_dump( __NAMESPACE__ );

結果は以下のようになるかと思います。

string(2) “my”
string(0) “”

こんな風に「現在の名前空間の名前」を、この定数で把握することが出来ます。

次に。
当然といえば当然ですが、名前空間を使うときは、名前空間の文字列を「変数の中に入れる」事もできます。

(my.php)
namespace my {
class hoge {
}
}
namespace me {
class hoge {
}
}

require_once(‘my.php’);
if (0 == mt_rand(0,1)) {
$name = ‘my';
} else {
$name = ‘me';
}
$class_name = $name . ‘\\hoge';
$obj = $class_name;
var_dump($obj);

今回は乱数を使ってちょっとばっかり遊んでますが、
考え方によっては色々と「非常に実用な」事も出来るかと思います。
変数に入れる時は、バックスラッシュ(\)をエスケープする必要がある点だけ気をつけておきましょう。

さて…今回を含めていくどか書いておりますが。
実際に実務で使う場合には「1ファイルで2つ以上の名前空間の設置」は、出来るけど非推奨になります。
非推奨にはなりますが、文法としては覚えておいても良い…のですが、
非推奨であることはしっかりと意識しておきましょう。

非推奨ついでに。
「名前空間宣言と同じ箇所にグローバルスコープなものを書きたい」場合、一応、こういう書き方ができます。

この続きは以下をご覧ください
http://resocia.jp/column/3022/

tweet12このエントリーをはてなブックマークに追加
日本赤十字社 東日本大震災 義援金募集
Web担メルマガでラクラク情報ライフを
注目記事が毎週手もとに届いて見逃さない
要チェックのセミナー情報もゲットできる
編集長コラムを一足先に読める
―― 10万人が読んでいる、Web担必読メルマガです

今日の用語

metaタグ
HTML文書のhead要素に配置されるタグで、ページを記述している言語や文字エン ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスHP Softwareトランスコスモス株式会社株式会社ハイパーボックスDomain Keeperアドビ システムズ 株式会社
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社SitecoreYahoo!プロモーション広告Oracle