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
【メモ】simple_html_parserの使い方リンク

[インストール~DOMオブジェクトの取得] http://so-zou.jp/w …

php-logo
UTF-8の16進数文字コードを指定して出力とか

PHPで文字コードを16進数で指定して出力する方法。pack()を使う。 [cr …

cakephp_logo
【Cake】【PHP】検索条件の設定(複数条件とかLikeとか)

CakePHPのfindの検索条件の付け方ってなんか苦手だったけどちょとわかった …

no image
yum groupインストール Development Tools

Redmine環境を構築するにあたり WEBで見てたら、初めてgroupinst …

php-logo
【PHP】php5.5にしたら ssh2.soとmecab.soでエラーが。

下記のようなエラー。 PHP Warning:PHP Startup: Unab …