ホームページ バックエンド開発 PHPチュートリアル 優れた PHP ライブラリは優れた名前空間から切り離せません

優れた PHP ライブラリは優れた名前空間から切り離せません

Aug 08, 2016 am 09:28 AM
namespace php

優れた PHP ライブラリは優れた名前空間の概要から切り離せません

名前空間は物事をカプセル化する方法です。この抽象的な概念は、さまざまな場所で見られます。たとえば、オペレーティング システムでは、ディレクトリ内のファイルをグループ化するためにディレクトリが名前空間の役割を果たします。この原則をプログラミングの分野に適用したのが、名前空間の概念です。 PHP 5.3 以降のバージョンでは、名前空間のサポートが開始されます。

名前空間を定義する

名前空間はキーワード namespace を使用して宣言します。正当な PHP コードはすべて名前空間に含めることができますが、名前空間の影響を受けるのはクラス、関数、定数の 3 つのタイプのみです。 namespace来声明。任何合法的PHP代码都可以包含在命名空间中,但只有类、函数和常量这三种类型受命名空间的影响。

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的declare语句。命名空间必须是程序脚本的第一条语句,所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。同一个命名空间可以定义在多个文件中。

定义子命名空间

与目录和文件的关系相似,PHP也允许指定层次化的命名空间。

在同一个文件中定义多个命名空间

PHP支持这种语法,但不提倡使用。在同一个文件中定义多个命名空间有两种语法形式:一种是简单的上下罗列,一种是使用大括号形式的语法。建议使用第二种。

<code><span><?php</span><span>declare</span>(encoding = <span>'UTF-8'</span>);
<span>namespace</span><span>MyProject</span> {
	/* <span>MyProject</span> */
}
<span>namespace</span> {
	/* <span>global</span> */
}</code>
ログイン後にコピー

将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。南通长牌游戏大厅http://www.szjmswy.com/

使用命名空间:基础

要使用命名空间,必须了解PHP是如何知道要使用哪一个命名空间中的元素的。

在文件系统中,访问一个文件有三种方式:

  • 相对文件名形式
  • 相对路径名形式
  • 绝对路径名形式

与文件系统相似,在PHP命名空间中,类名可以通过三种方式引用,需要了解一下命名空间名称定义:

  • 非限定名称,不包含前缀的类名称。名称中不包含命名空间分隔符的标识符。例如Foo
  • 限定名称,包含前缀的名称,名称中含有命名空间分隔符的标识符。例如FooBar
  • 完全限定名称,包含了全局前缀操作符的名称。名称中包含命名空间分隔符,并一命名空间分隔符开始的标识符。例如FooBarnamespaceFoo也是一个完全限定名称。

命名空间和动态语言特征

命名空间的实现受到语言自身的动态特征的影响,有时必须使用完全限定名称。

namespace关键字和__NAMESPACE__常量

常量__NAMESPACE__的值是包含当前命名空间名称的字符串。在全局的,不包括在任何命名空间中的代码,它包含一个空的字符串。常量__NAMESPACE__在动态创建名称时很有用。

关键字namespace可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的self操作符。

使用命名空间:别名/导入

允许通过别名引用或导入外部的完全限定名称,类似于在类unix文件系统中可以创建对其它的文件或目录的符号连接。

PHP命名空间支持两种别名或导入方式:

  • 为类名称使用别名
  • 为命名空间名称使用别名

使用use操作符导入或使用别名,支持一行包含多个use语句。注意对命名空间中的名称,前导的反斜杠是不必要的也不允许有反斜杠,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

全局空间

若未定义任何命名空间,所有的类与函数的定义都是在全局空间。在名称前加上前缀

名前空間を宣言する前の唯一の正当なコードは、ソース ファイルのエンコーディングを定義する declare ステートメントです。名前空間はプログラム スクリプトの最初のステートメントである必要があり、空白を含むすべての非 PHP コードを名前空間宣言の前に置くことはできません。同じ名前空間を複数のファイルで定義できます。

サブ名前空間を定義する

ディレクトリとファイルの関係と同様に、PHP では階層的な名前空間を指定することもできます。

同じファイル内で複数の名前空間を定義する

PHP はこの構文をサポートしていますが、その使用は推奨されません。同じファイル内で複数の名前空間を定義するには 2 つの構文形式があります。1 つは単純な上位リストと下位リストで、もう 1 つは中括弧を使用する構文です。 2番目のものを使用することをお勧めします。

rrreee

グローバル非名前空間コードと名前空間コードを組み合わせるには、中かっこ構文のみを使用できます。 Nantong Changpai Game Hall http://www.szjmswy.com/

名前空間の使用: 基本

名前空間を使用するには、名前空間内のどの要素を使用するかを PHP がどのように認識するかを理解する必要があります。

ファイル システムでは、ファイルにアクセスする方法が 3 つあります:

  • 相対ファイル名形式
  • 相対パス名形式
  • 絶対パス名の形式
ファイル システムと同様に、PHP 名前空間では、クラス名を 3 つの方法で参照できます。 名前空間名の定義を理解する必要があります。 🎜
  • 非修飾名 、プレフィックスのないクラス名。名前に名前空間区切り文字が含まれていない識別子。たとえば、Foo などです。
  • 修飾名、プレフィックスを含む名前、名前に名前空間区切り文字を含む識別子。たとえば、FooBar などです。
  • グローバル接頭辞演算子の名前を含む完全修飾名。名前に名前空間区切り文字が含まれており、名前空間区切り文字で始まる識別子。たとえば、FooBar などです。 namespaceFoo も完全修飾名です。
🎜名前空間と動的言語機能🎜🎜 名前空間の実装は言語自体の動的機能の影響を受けるため、場合によっては完全修飾名を使用する必要があります。 🎜🎜namespace キーワードと __NAMESPACE__ 定数🎜🎜 定数 __NAMESPACE__ の値は、現在の名前空間の名前を含む文字列です。どの名前空間にも含まれていないグローバル コードには、空の文字列が含まれます。定数 __NAMESPACE__ は、名前を動的に作成する場合に便利です。 🎜🎜キーワード namespace を使用すると、現在の名前空間またはサブ名前空間内の要素に明示的にアクセスできます。これは、クラスの self 演算子と同等です。 🎜🎜名前空間の使用: エイリアス/インポート🎜🎜 UNIX のようなファイル システムで他のファイルまたはディレクトリへのシンボリック リンクを作成する方法と同様に、エイリアスを介して外部の完全修飾名を参照またはインポートできます。 🎜🎜PHP 名前空間は 2 つのエイリアスまたはインポート メソッドをサポートしています: 🎜
  • クラス名にエイリアスを使用します
  • 名前空間名にエイリアスを使用します
🎜 use 演算子を使用してエイリアスをインポートまたは使用し、1 行で複数の use ステートメントをサポートします。インポートされた名前は完全修飾されている必要があり、現在の名前空間を基準にして解決されないため、名前空間内の名前の場合、先頭のバックスラッシュは不要で許可されないことに注意してください。 🎜🎜グローバル空間🎜🎜 名前空間が定義されていない場合、すべてのクラスと関数はグローバル空間で定義されます。名前の前に を付けると、その名前がグローバル空間内の名前であることを示します。 🎜🎜名前空間の使用: フォールバックグローバル関数/定数🎜🎜名前空間で、PHP が修飾されていないクラス、関数、または定数の名前を検出すると、名前を解決するためにさまざまなワイヤー戦略を使用します。 🎜🎜クラス名は常に現在の名前空間内の名前に解決されるため、システム内部のクラス名、または名前空間に含まれていないクラス名にアクセスする場合は、完全修飾名を使用する必要があります。 🎜🎜関数と定数の場合、関数または定数が現在の名前空間に存在しない場合、PHP はグローバル空間で関数または定数を使用するようにフォールバックします。 🎜🎜名前解決ルール🎜🎜 名前解決ルールには大量のテキストが含まれており、特定の問題の詳細な分析が必要です。 🎜🎜(全文終わり)🎜 🎜 上記では、優れた PHP ライブラリは優れた名前空間と切り離せないことを、その側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。 🎜 🎜 🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 にアップグレードする方法について説明します。

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 は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

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

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles