PHPでコードを再利用するための「インクルードファイル」と「関数」の違いは何ですか?
1 つの違いを列挙できます。関数を使用する場合、呼び出し元のスクリプトは関数のローカル変数にアクセスできませんが、インクルード スクリプトを含めると、含まれるスクリプトのローカル変数にアクセスできます。
他の違いは何ですか?
いつ「関数」を使用し、いつ「インクルード ファイル」を使用する必要がありますか?
DB接続の場合、通常はどれを使用しますか?
PHPでコードを再利用するための「インクルードファイル」と「関数」の違いは何ですか?
1 つの違いを列挙できます。関数を使用する場合、呼び出し元のスクリプトは関数のローカル変数にアクセスできませんが、インクルード スクリプトを含めると、含まれるスクリプトのローカル変数にアクセスできます。
他の違いは何ですか?
いつ「関数」を使用し、いつ「インクルード ファイル」を使用する必要がありますか?
DB接続の場合、通常はどれを使用しますか?
関数は呼び出し可能なコードのブロックです。通常、特定のコード ブロックが複数回使用されるときに、開発者によって作成されます。同じコードを複数の場所に記述する代わりに、関数を作成し、必要に応じて呼び出します。
また、一部の開発者は、読みやすさと理解を容易にするために、コード内で特定のタスクを区別する関数を作成します。特定のコードブロックが何をするかについて、関数を「ラベル」として使用します。たとえば、readFile()
ファイルを読み取る特定のコード ブロック用の関数を作成します。
一方、インクルードは、あたかもそのファイルにコード化されているかのように、ファイルを呼び出し元のファイルに「マージ」します。これにより、他のファイルで宣言されたものはすべて、それを呼び出したスコープ内の現在のファイルで使用できるようになります。
何を使うかというと、両方使います。
現在のファイルから DB 接続コードを分離するにはdbcon.php
、DB とのインターフェイスに必要なすべてのプロパティとメソッド (関数) を含む DB クラスを別のファイル ( など) に作成します。
次に、DB接続が必要なファイル( などindex.php
)で、クラス定義を使用するinclude
ためにDBクラスを含むファイルを「マージイン」する必要があります。index.php
当たり前の質問のように思えますが、とにかく私たちの経験を共有することは興味深いことです。
構成ファイル (定数、つまり) を含めるには、require_once
. これがないとシステムは機能せず (必須)、一度だけ (一度だけ) 含める必要があるためです。したがって... class
、DB configuration
、constants
およびコア ファイルは、 ではrequire_once
なくによって挿入する必要がありますinclude
。これは、一部のファイルが欠落している場合、致命的なエラーをスローして実行を停止し、エラー チェーンを防止するためです。
では、いつ ? を使用できますinclude
か?
include
inclusion
より複雑なコードの一部 (たとえば、他のインクルード) と、システムにとって必須または必須ではないコードの一部に使用する必要があります。たとえば、ビューに 1 つのモジュールを含めることを考えることができます。(tpl ファイルを処理する php ファイルを含めます)。他の開発者とシステムで作業するとき、いくつかの部分が共有され (つまり、データベース)、一部がローカルであると考えています。他の開発者にインクルードの失敗を引き起こす共有部分の何かを変更しても、致命的なエラーは発生しません。(あくまで一例です)
今:function
代わりにいつ使うべきですか?
多くの関数を記述する場合、含まれている 1 つのファイル (または、必要なファイル) を使用して、必要なときにこの関数の 1 つを呼び出すことができます。さらに、すべての関数内のコードはカプセル化されているため、コードの他の部分との煩わしい競合が防止されます (信じてください: これは非常に頻繁に発生し、エラーを見つけるのは必ずしも簡単ではありません)。
利点: 1 つのファイルで多くの関数を処理でき、すべてのコードがカプセル化されます。