ホームページ  >  記事  >  バックエンド開発  >  名前空間の紹介、PHP5.3の新機能_PHPチュートリアル

名前空間の紹介、PHP5.3の新機能_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:36:11754ブラウズ

PHP 5.3 の重要な新機能は名前空間です。
この機能は PHP5.0x で提案されましたが、後にキャンセルされ、PHP6 で実装される予定でした。そして今回、PHP5.3が再び「予定より前倒し」でリリースされたことは、開発者がPHP5.3を非常に重要視しており、慎重であることを示しています。

正式にリリースされた時点ではドキュメントの内容が古くなっている可能性があるため、ここで名前空間の使用法を簡単に説明します。 まず、名前空間を宣言し、新しいキーワード名前空間を追加します。これはクラス ファイル内に存在する必要があります。始まります

$user = new Project::Module::User();$user->register($register_info); は確かに通常と同じですが、2 つの独立したクラスを接続できます。たとえば

Project::Module::User;Project::Module::Blog; これにより、言語自体から変数とクラスの関係を簡単に説明して理解できるようになり、 Project_Module_Blog の「従来の」長い命名方法が回避されます。

上記の説明では、名前空間を使用する利点を説明するのが難しいかもしれません。新しく追加された と をキーワードとして使用すると、問題をよりよく説明できるかもしれません。および as ステートメントを使用すると、名前空間の「エイリアス」を参照および宣言できます。たとえば、上記のコントローラーでクラスをインスタンス化するコードは次のように記述できます

Project::Module;$user = new Module::User();$user->register($register_info); または

Project::Module::User as ModuleUser;$user = new ModuleUser;$user->register($register_info);クラス内の定数には、名前空間を通じてアクセスすることもできます。たとえば、上記のクラスの STATUS_OK は、名前空間を通じてアクセスすることもできます。 Space という名前を通じてアクセスできます

Project::Module::User::STATUS_OK アクセス。さらに、エイリアスを使用して、このような長い「変数名」を簡素化することもできます

use Project::Module::User::STATUS_OK as STATUS_OK;echo STATUS_OK;ところで、「グローバル名前空間」の概念について触れておきます。いわゆる「ハイパースペース」とは、指定された名前空間を持たない変数、クラス、関数を指します。たとえば

function foo() {...} この関数は foo() または ::foo(); を使用して実行できます。

最後に、autoload 関数を使用して、指定された名前空間にクラスをロードします。簡単な機能は以下の通りです

function __autoload( $classname ) {$classname = strto lower( $classname );$classname = str_replace( ::, DIRECTORY_SEPARATOR, $classname );require_once( dirname( __FILE__ ) . / . $classname . .class.php );}このようにして、たとえば

を呼び出します。

__autoload(Project::Module::User); は、Project_Module_User.class.php ファイルを自動的にロードできます (ただし、これは不便に見えます)。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508245.html技術記事 PHP 5.3 の重要な新機能はネームスペースです。 この機能は PHP5.0x で提案されましたが、後に中止され、PHP6 で実装される予定でした。そして今回も「…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。