ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルに含まれる require() ファイルの正しい使用法について知っておくべきこと

PHP_PHP チュートリアルに含まれる require() ファイルの正しい使用法について知っておくべきこと

Jul 13, 2016 am 10:36 AM
aspnet ソフトウェアプログラミング

過去にいくつかの PHP フレームワークのソース コードを見たとき、ファイルがインクルードされるときにファイル パスを結合するために dirname(__FILE__) が使用されていることが奇妙でした。そうすることの利点がわかりませんでした。しかし、ついにその理由が分かりました。

簡単な例を見てみましょう:

php ファイルは a、b、c の 3 つあります。 a.php は Web サイトのルート ディレクトリにあり、b.php は b フォルダー (b/b.php) にあり、c.php は c フォルダー (c/c.php) にあります。何かの混乱?写真を見れば一目瞭然です

a.php と b.php には両方とも c.php が含まれており、最後に c.php には d フォルダー (d/d.php) に php ファイルが含まれています。

まず a.php を見てみましょう:

リーリー

これは非常に単純なコードです。印刷後、c/c.php を確認する必要があります。 リーリー

「これは c.php です。a.php で必要です」という出力を印刷します。$file_name は a.php で定義された変数です。最後にd.phpがインクルードされます。 dフォルダは現在のc.phpファイルの一つ上にあるので、常識的には当然パスは「../d/d.php」と書きます。ただし、残念ながらエラーが報告されます。その理由は、c.php などのインクルード ファイルに他のファイルをインクルードする場合、そのパスは最も外側の親ファイル、つまり a.php を基準とした相対パスになり、あなたが私にインクルードされていると理解できるからです。 , だから、あなたは私を頼らなければなりません。非常に謎に思えますが、原理は実際には非常に単純です。require('c/c.php'); を c/c.php ファイル内のコードとして考えることができ、a.php は次のようになります。 :

リーリー

この時点で、d/d.php ファイルをインクルードしたいときのパスが間違っていることがわかりますか?ここでは a.php コード内にいるため、a.php ファイルに対する相対パスになります。もちろん、パスは require('d/d.php'); である必要があります。コードを次のように変更します:

リーリー

この時点ではまだ意味を理解していないので、b/b.php を見てみましょう:

リーリー

説明の必要はありませんが、問題はありませんが、require('../c/c.php'); を c/c.php のコードに置き換えると問題が発生します。注意してください。 c/c.php のコードを変更し、require('../d/d.php'); を require('d/d.php') に変更しました。以下のコードを見てください。 リーリー

つまり、b/b.php と比較すると、require('d/d.php'); のパスは間違っており、require('../d/d.php'); である必要があります。戻って c/c.php の require パスを変更すると、b/b.php は正常に実行できるが、a/a.php は c を共有できないというのは本当ですか。 /c? .php、全身に影響します、どうすればいいですか?

この時点で、記事の冒頭で述べた dirname(__FILE__) に戻ります。これは良いことであり、上記の問題を完全に解決できます。これを使用すると、どのファイルにファイルが含まれているか、またそのファイルがどのパスにあるかを気にする必要がなくなります。 dirname(__FILE__) で相対パスを指定できるため、親ファイルのレベルを気にする必要がなくなります。現行ファイル。つまり、c/c.php の require パスを次のように変更する必要があります:

リーリー

ここでは、c/c.php を参照するだけで済みます。それに比べて、d/d.php は上位にあります。このように、基準は 1 つだけです。つまり、あなたが私を含めるか、彼が私を含めるかに関係なく、私は自分自身を基準としてのみ使用し、含めたいファイルは自分自身に対して相対的なものにすぎません。

dirname(__FILE__) が理解できない実践者の方は、Google で検索してください。非常に簡単です。

これで PHP テクノロジーの共有は終了です。ご質問や間違いがございましたら、メッセージを残してください。ちなみに、これは私の最初の標準的な技術ブログ投稿です。最初の記事は水文学、二番目の記事は準技術記事、そして今日はついに技術記事を書きました、Ou Ye。

http://www.bkjia.com/PHPjc/738506.html

tru​​ehttp://www.bkjia.com/PHPjc/738506.html技術記事以前、PHP フレームワークのソース コードをいくつか見たとき、ファイルがインクルードされるときにファイル パスを結合するために dirname(__FILE__) が使用されるのは奇妙でした。そうすることの利点はわかりませんでしたが、そうすることの利点はわかりませんでした。やっと分かりました…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。 Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。 Jul 29, 2023 pm 05:19 PM

Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。Web アプリケーションの急速な開発に伴い、パフォーマンスの最適化は開発者にとって不可欠かつ重要なタスクになっています。人気のフロントエンド フレームワークとして、Vue.js を ASP.NET と組み合わせることで、より優れたパフォーマンスの最適化と拡張を実現できます。この記事では、いくつかのヒントと提案を紹介し、いくつかのコード例を示します。 1. HTTP リクエストの削減 HTTP リクエストの数は、Web アプリケーションの読み込み速度に直接影響します。合格

生成 AI がソフトウェア開発を変える 10 の方法 生成 AI がソフトウェア開発を変える 10 の方法 Mar 11, 2024 pm 12:10 PM

翻訳者 | Chen Jun によるレビュー | Chonglou 1990 年代、ソフトウェア プログラミングというと、通常、エディタを選択し、コードを CVS または SVN コード ベースにチェックインし、コードを実行可能ファイルにコンパイルすることを意味していました。 Eclipse や Visual Studio などの対応する統合開発環境 (IDE) は、プログラミング、開発、ドキュメント化、構築、テスト、展開、その他のステップを完全なソフトウェア開発ライフ サイクル (SDLC) に統合できるため、開発者の作業効率が向上します。近年、人気のクラウド コンピューティングと DevSecOps 自動化ツールにより、開発者の包括的な能力が向上し、より多くの企業がソフトウェア アプリケーションを開発、展開、保守することが容易になりました。今日、生成 AI は次世代の開発です

ASP.NET プログラムにおける MySQL 接続プールの使用法と最適化手法 ASP.NET プログラムにおける MySQL 接続プールの使用法と最適化手法 Jun 30, 2023 pm 11:54 PM

ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化するにはどうすればよいですか?はじめに: MySQL は、高いパフォーマンス、信頼性、使いやすさを特徴とする、広く使用されているデータベース管理システムです。 ASP.NET 開発では、データ ストレージに MySQL データベースを使用することが一般的な要件です。データベース接続の効率とパフォーマンスを向上させるには、MySQL 接続プールを正しく使用し、最適化する必要があります。この記事では、ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化する方法を紹介します。

ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? Jun 29, 2023 pm 02:21 PM

ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? ASP.NET 開発では、MySQL データベースを使用するのが非常に一般的です。ただし、ネットワークまたはデータベース サーバーの理由により、データベース接続が中断されたりタイムアウトになったりする場合があります。この場合、プログラムの安定性と信頼性を確保するために、接続が切断された後に接続を再確立する必要があります。この記事では、ASP.NET プログラムで MySQL 接続を再接続する方法を紹介します。必要な名前空間を最初に参照するには、コード ファイルの先頭でそれらを参照します。

Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。 Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。 Jul 29, 2023 pm 02:37 PM

Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。今日の急速に発展するインターネット テクノロジ分野では、エンタープライズ レベルのアプリケーションの開発と展開がますます重要になっています。 Vue.js と ASP.NET は、フロントエンドとバックエンドの開発で広く使用されている 2 つのテクノロジであり、これらを組み合わせることで、エンタープライズ レベルのアプリケーションの開発と展開に多くの利点をもたらします。この記事では、コード例を通じて、Vue.js と ASP.NET を使用してエンタープライズ レベルのアプリケーションを開発およびデプロイする方法を紹介します。まず、インストールする必要があります

ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は? ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は? Jun 29, 2023 pm 12:56 PM

ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は?インターネットの発展とデータ量の増加に伴い、データベースへのアクセスと接続の需要も増加しています。データベースのパフォーマンスと安定性を向上させるために、接続プーリングは不可欠なテクノロジーになっています。この記事では、データベースの効率と応答速度を向上させるために、ASP.NET プログラムで MySQL 接続プールを正しく構成および使用する方法を主に紹介します。 1. コネクションプーリングの概念と機能 コネクションプーリングはデータベースコネクションを再利用する技術であり、プログラムの冒頭で使用されます。

ASP.NET での MySQL 接続プールのトランザクション パフォーマンスの使用と最適化 ASP.NET での MySQL 接続プールのトランザクション パフォーマンスの使用と最適化 Jun 30, 2023 pm 12:12 PM

ASP.NET プログラムで MySQL 接続プールのトランザクション パフォーマンスを正しく使用し、最適化するにはどうすればよいですか? ASP.NET プログラムでは、データベース トランザクションは非常に重要な部分です。トランザクションにより、データベースの一貫性と整合性が確保されると同時に、パフォーマンスも向上します。 MySQL データベースを使用する場合、接続リソースを管理し、パフォーマンスを最適化するために接続プールを使用することが不可欠です。まず、MySQL 接続プールの概念を簡単に理解しましょう。接続プールは、接続グループのバッファ プールです。

aspnet の組み込みオブジェクトとは何ですか? aspnet の組み込みオブジェクトとは何ですか? Nov 21, 2023 pm 02:59 PM

ASP.NET の組み込みオブジェクトには、「リクエスト」、「レスポンス」、「セッション」、「サーバー」、「アプリケーション」、 「HttpContext」、「Cache」、「Trace」、「Cookie」、および「Server.MapPath」: 1. リクエスト、クライアントによって発行された HTTP リクエストを示します; 2. レスポンス: Web サーバーによって返された HTTP 応答を示します。クライアントなど

See all articles