名前空間について その3

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

ヒューマンリソシア株式会社はコラム「名前空間について その3」を公開しました。
今回は「グローバル空間」について、少し理解を深めていきましょう。

例えば。
全体的に「ArrayObjectでいい感じの拡張を思いついたから、継承クラスを作ってみよう」とか思いついてみます。
早速、サンプルコードを書いてみましょう。

namespace my {
class MyArrayObject extends ArrayObject {
}
}

「Fatal error: Class ‘my\ArrayObject’ not found in 」………え?
なんでエラー?
っていうかArrayObjectに勝手にmyの名前空間とか付けないで欲しいんだけど…という状況に、
割とあっというまに遭遇いたします。
ArrayObject自体は、以前にやりましたが、SPLにある既存のクラスですね。
…さて、どうしましょう?

PHPに「元々」あるものは、「グローバル空間」という名前空間に紐付いています。
で、この「グローバル空間」にあるものは、名前の先頭に \ をつけると、
名前空間の内部からであってもグローバル空間の名前を指定することが出来るようになります。
では、やってみましょう。

namespace my {
class MyArrayObject extends \ArrayObject {
}
}

はい、今度は問題なくいけるようになりました。
この辺り、もう少し深く掘り込んでみましょう。
まず、グローバル空間にある「関数」は、必ずしも「グローバル空間」を指定しなくても動きます。

(my.php)
namespace my {
class MyArrayObject extends \ArrayObject {
public function hoge() {
$fp = fopen(__FILE__, “r”);
var_dump($fp);
}
}
}

これを動かしてみます。

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

この記事が役に立ったらシェア!
tweet16このエントリーをはてなブックマークに追加
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやアクセス解析のなどノウハウをゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
  • 編集長コラムを一足先に読める
用語集 PHP
日本赤十字社 東日本大震災 義援金募集
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやアクセス解析のなどノウハウをゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
  • 編集長コラムを一足先に読める

今日の用語

ナビゲーション
サイトの訪問者が、サイト内で目的のコンテンツを探したり、サイト内の他のコンテンツ ... →用語集へ

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

インフォメーション

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

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

サイトマップ
RSSフィード


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

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