For Want Of A Better Word

PHPの名前空間

      2015/04/19

※PHP5でオブジェクト指向がサポートされてからの概念。スコープとは違います。

PHP の世界では、名前空間は次のふたつの問題を解決するための手段として用意されています。
ライブラリやアプリケーションの作者が、 クラスや関数といった再利用可能なコード部品を作ろうとするときにこれらの問題にぶちあたることになります。

①あなたが作成したコードと PHP の組み込みのクラス/関数/定数 あるいはサードパーティのクラス/関数/定数の名前が衝突する
②最初の問題を解決するためには、Extra_Long_Names のような長い名前をつけなければならない
PHP の名前空間は、関連するクラスやインターフェイス、関数、そして定数をひとまとめにして扱うものです。

※名前空間の名前として PHP や php は使えません。
※PHP のコードならなんでも名前空間に含めることができますが、 実際に名前空間の影響を受けるのはクラスとインターフェイス、関数、そして定数の 4 種類だけです。
名前空間を宣言するには、キーワード namespace を使用します。名前空間を含むファイルでは、他のコードより前にファイルの先頭で名前空間を宣言しなければなりません。 ただし declare キーワードは例外です。
※PHP には、現在の名前空間内の要素へのアクセスを抽象化するための方法が 2 通りあります。 マジック定数 __NAMESPACE__ および namespace キーワードがそれです。
__NAMESPACE__ の値は文字列で、現在の名前空間の名前が格納されます。 名前空間に属さないグローバルなコードでは、この中身は空文字列となります。

 - php, 開発全般

  関連記事

php-logo
nl2br()

改行文字の前に HTML の改行タグを挿入する 例 さまざまな改行文字 上の例の …

php-logo
phpでhtmlからタグ、スクリプトの除去

スクレイピング中に需要が。 simple_html_parserの「innert …

php-logo
辞書順比較(アルファベットと数値、大文字と小文字)

数値とアルファベット ・数値の方が小さい・先と判断される。 [crayon-59 …

cakephp_logo
CakePHP2.0導入 ① 1系と2系の違い

[参考サイト]2.0移行ガイド http://book.cakephp.org/ …

android-logo
Android概要

[概要] AndroidとはGoggle社提供の「携帯電話向けプラットフォーム( …