ホームページ バックエンド開発 PHPチュートリアル ネームスペースとは何ですか? PHP 名前空間の基本的なアプリケーション共有

ネームスペースとは何ですか? PHP 名前空間の基本的なアプリケーション共有

May 18, 2017 am 11:32 AM

名前空間とは何ですか?

PHP で宣言された関数、クラス、定数の名前は、同じ実行で繰り返すことはできません。そうしないと、致命的なエラーが発生します。一般的な解決策は、プレフィックスを合意することです。たとえば、プロジェクト開発中に、User モジュールのコントローラーとデータ モデルの両方で同じ User クラスを宣言することはできません。クラス名の前にそれぞれの関数プレフィックスを追加する必要があります。コントローラー内の User クラスには ActUser クラス、データ モデル内の User クラスには ModelUser クラスという名前を付けることができます。この問題はプレフィックスを追加することで解決できますが、名前が長すぎるため、開発中にさらに多くのコードを記述することになります。 php5.3 以降のバージョンでは、非常に成熟した関数 ----- 名前空間を使用するために、他の多くの高級言語 (Java、C# など) が追加されています。その最も明確な目的の 1 つは、問題を解決することです。重複した名前。名前空間はコードをさまざまな領域に分割し、各領域の定数、関数、クラスの名前は相互に影響しません。

注: PHP5.3 以降、定数が変更されました。const キーワードを使用してクラスの外で定数を宣言できます。 constdefine はどちらも定数の宣言に使用されますが、名前空間では、define はグローバルに動作するのに対し、const は現在の空間に対して動作します。ここでいう定数とは、const で宣言した定数を指します。

ネームスペースの役割と機能は非常に強力で、プラグインや一般ライブラリを作成するときに名前の重複を心配する必要がなくなりました。ただし、プロジェクトがある程度進み、名前空間を追加して名前の重複の問題を解決する必要がある場合、名前のリファクタリング以上の作業負荷がかかります。したがって、命名規則はプロジェクトの最初から綿密に計画し、指定する必要があります。

名前空間の基本的な応用

デフォルトでは、PHP の定数、クラス、関数のすべての宣言はグローバル空間に配置されます。 php5.3 以降のバージョンでは個別のスペース宣言があり、異なるスペースにある同じ名前が競合することはありません。独立した名前空間は、

namespace キーワードを使用して宣言されます。

コードは次のとおりです:

<?php
 //声明这段代码的命名空间
 namespace abc;
 // 这里是代码
?>
ログイン後にコピー

注: 名前空間は PHP スクリプトの先頭に記述する必要があり、最初の PHP 命令である必要があります。その前に非 PHP コード、HTML、またはスペースを含めることはできません。名前空間。

コードの名前空間 abc から始まり、次の名前空間が表示されるかスクリプトが終了するまで、この空間に abc という名前を付けます。

同じコードに名前空間を指定したり、複数の名前空間を定義したりすることはできません。複数の名前空間が一緒に使用されている場合、最後の名前空間のみが認識されますが、同じファイル名前空間コード内で異なる名前空間を定義することはできます。

コードは次のとおりです:

<?php
namespace project1;
class user{
  //此 user 属于project1 空间的类
}
namespace project2;
class user{
 //此 user 属于project2 空间的类
}
// 上面的替代语法,另一种声明方法
namespace project3{
   //命名空间  project3 下的代码
}
?>
ログイン後にコピー

上記のコードは実行可能であり、異なる名前空間で個別のユーザー クラスを使用しますが、そのようなコードが読み取れるように、独立したファイルごとに名前空間を 1 つだけ定義することをお勧めします。最高の。同じ空間内では、自分の空間内の任意の要素を直接呼び出すことができますが、異なる空間間で他の空間内の要素を直接呼び出すことはできません。ネームスペース構文を使用する必要があります。コードは次のとおりです。

<?php
namespace project1;
const test = "这是一个常量<br>";
function demo(){
 echo "这是一个函数<br>";
}
class user {
 function fun(){
   echo "这是一个 user 类";
 }
}
echo test;      //在自己的命名空间中直接使用常量
demo();         //在自己的命名空间中直接调用函数
/***************   project2   ******************/
namespace project2;
const test2 = "这也是一个常量<br>";
echo test2;
\project1\demo();      //调用 project1 空间中的 demo()
$user = new\project1\user();  //使用 project1 空间的类实例化对象
$user->fun();
?>
ログイン後にコピー

上記の例では、project1 と project2 の 2 つのスペースが宣言されており、自分のスペースで project1 の要素を project2 で呼び出すときに、このスペースで宣言された要素を直接呼び出すことができます。ファイル パス

スペース名 要素名 に似た A 構文を使用します。使用法はクラス、関数、定数でも同じです。

【関連チュートリアル】

1.「

php.cn Dugu Jiijian (4) - PHP ビデオチュートリアル

2. ビデオチュートリアル:

名前空間: 私たちは同じ名前、同じ性別ですが、私たちは属しています。異なる時間と空間へ

3.

PHP プログラミングの入門からマスターまでの完全なチュートリアル セット

以上がネームスペースとは何ですか? PHP 名前空間の基本的なアプリケーション共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles