2017 年にフレームワークを学ぶ初心者にとって必須: Thinkphp5 フレームワーク チュートリアルの名前空間の詳細な説明
ThinkPHP は、高速で互換性があり、シンプルで軽量な国産の PHP 開発フレームワーク を使用すると、開発プロセスを大幅に簡素化し、時間を節約できます。この記事は PHP 中国語向けで、ThinkPHP の非常に重要な概念である 名前空間 を誰もが学ぶのに役立ちます。
名前空間ThinkPHP は、名前空間定義とクラス
ライブラリ ファイルの自動ロードを使用します。これにより、複数のモジュールと Composer クラス ライブラリ間の名前空間の競合問題が効果的に解決され、より効率的なクラス ライブラリの自動ロード メカニズムが実装されます。PHP 中国語 Web サイト コースに移動できます: PHP プログラミング名前空間チュートリアルをすぐに学習できます
当社の PHP 中国語 Web サイトでは、関連するビデオ コースも提供しています: Dugu Jiijian (5)_ThinkPHP5 ビデオ チュートリアル
PHP 構文
A) ネーミング空間は仮想定義空間です。定数 (const 定義された定数、定義されていない定数) は有効です。
d) 名前空間には 3 つのアクセス方法があります: 非修飾名アクセス方法、完全修飾名アクセス方法。 以下、一つずつ詳しく説明していきます。 1. 名前空間は、関数、クラス、定数 (const 定義定数、未定義定数) に対してのみ有効です。 定義を使用して同じ名前の 2 つの定数を定義しようとするとどうなるでしょうか?
ブラウザで開くと、次のエラーが報告されます:
したがって、名前空間は関数、クラス、および定数 (const で定義された定数、非定数) に対してのみ有効です。 -define で定義された定数)。
上記で宣言された名前空間 space1 と space2 はどちらも単一レベルの名前空間であり、space1space2space3 の形の名前空間はマルチレベルの名前空間であり、セパレータです。は 。以下に 3 つの名前空間アクセス方法を紹介します。
1. 非修飾名アクセス方法
非修飾名アクセス方法でアクセスする場合、現在の名前空間の下にある関数 (クラス) にアクセスします。定数) であるため、上記のコードの出力結果は次のようになります。
2. 完全修飾名アクセス方式
name2space2 名前空間の name1space1 にある getmsg() メソッドにアクセスしたい場合は、完全修飾名アクセス方式 (絶対パスアクセスと同等) を使用できます。
つまり、上記のコードの出力は次のようになります: こんにちは。
3. 修飾名アクセス方式
修飾名アクセス方式と完全修飾名アクセス方式の違いは前面のみです。修飾名アクセスを使用して上記の例にアクセスする場合は、最後の行を name1space1getmsg();
に変更します。この時点でブラウザで開くと、次のエラーが見つかります:
Prompt that we can not find以下の名前空間 name2space2name1space1 getmsg() 関数。その理由は、修飾名アクセス メソッド が相対パス アクセスと同等であるためです。現在の名前空間にアクセスするには、name1space1getmsg() 関数が使用されます。名前空間が見つからない場合は、エラーが報告されるだけです。したがって、name2space2name1space1 という名前の別の名前空間を宣言すると、上記のアクセスは次のように正常に実行できます。
出力結果は次のようになります: hello-world。
3. 名前空間と空間クラス要素の導入メカニズム
1. 名前空間の導入
上記の例を通して、現在の名前空間にアクセスする際に、別の名前を使用したい場合に、空間内の関数、定数、またはクラス要素を使用するには、コードを記述するのが面倒であるため、名前空間を導入し、修飾名アクセスを使用してアクセス プロセスを簡素化できます。
出力結果は次のとおりです: hello Dog
2. 空間要素の導入
名前空間の導入と同様に、use キーワードを使用して空間要素を導入しますでは。制限のないアクセス方法を使用して直接アクセスできます。ただし、導入したクラスと同じ名前のクラスは現在の名前空間に存在できません。存在しない場合はエラーが発生します。
出力結果は、犬のルバーブです。
4. パブリックスペース
namespaceキーワードを使用して名前空間を宣言しない場合、それはパブリックスペースに属します。
ここでは 2 つの php ファイル、1.php と 2.php を作成します。1.php 名前空間 は name1space1、2.php はパブリック空間です。
1.php:
namespace name1\space1; header("content-type:text/html;charset=utf-8"); class Animal { public $obj = 'dog'; static $name = '大黄'; } function getmsg() { echo 'hello'; } const MN = 123; //在命名空间中引入公共命名空间 include ('./2.php'); getmsg(); //访问的是当前空间下的getmsg()函数 echo '</br>'; \getmsg(); //访问的是公共命名空间(即2.php文件)下的getmsg()函数 echo '</br>'; echo MN; //会先在当前命名空间下寻找MN常量,如果找到就输出,如果找不到,就会去公共命名空间寻找MN常量 echo '</br>'; echo \MN; //访问的是公共命名空间(即2.php文件)下的MN常量
2.php:
//没有指定命名空间,则其属于公共命名空间 function getmsg() { echo 'world'; } const MN = '456';
1.phpをブラウザで開くと、出力結果は次のようになります:
hello
world
123
456
5。仮想定義空間は実際のディレクトリではありません
thinkphp5.0 では、名前空間は実際のディレクトリではなく仮想定義空間です。ただ、公式が名前空間を宣言するとき、名前空間の名前は意図的にディレクトリ構造に対応します。
たとえば、application/index/controller フォルダーの下にある Index.php ファイルを開きます。その名前空間は appindexcontroller です。ディレクトリ構造に存在しません。
名前空間のエイリアス
このフレームワークを使用すると、名前空間のエイリアスを定義できます。例:
namespace app\index\model; use think\Model; class User extends Model { }
コントローラーの元の呼び出しメソッドは次のとおりです:
namespace app\index\controller; use app\index\model\User; class Index { public function index() { $user = new User(); } }
アプリケーションに名前空間を登録する場合public ファイルのエイリアスは次のとおりです:
\think\Loader::addNamespaceAlias('model','app\index\model');
次に、上記のコントローラー コードを次のように変更できます:
namespace app\index\controller; use model\User; class Index { public function index() { $user = new User(); } }
相关资料推荐:

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用して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で後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

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