1

PHPでコードを再利用するための「インクルードファイル」と「関数」の違いは何ですか?

1 つの違いを列挙できます。関数を使用する場合、呼び出し元のスクリプトは関数のローカル変数にアクセスできませんが、インクルード スクリプトを含めると、含まれるスクリプトのローカル変数にアクセスできます。

他の違いは何ですか?

いつ「関数」を使用し、いつ「インクルード ファイル」を使用する必要がありますか?

DB接続の場合、通常はどれを使用しますか?

4

2 に答える 2

2

関数は呼び出し可能なコードのブロックです。通常、特定のコード ブロックが複数回使用されるときに、開発者によって作成されます。同じコードを複数の場所に記述する代わりに、関数を作成し、必要に応じて呼び出します。

また、一部の開発者は、読みやすさと理解を容易にするために、コード内で特定のタスクを区別する関数を作成します。特定のコードブロックが何をするかについて、関数を「ラベル」として使用します。たとえば、readFile()ファイルを読み取る特定のコード ブロック用の関数を作成します。

一方、インクルードは、あたかもそのファイルにコード化されているかのように、ファイルを呼び出し元のファイルに「マージ」します。これにより、他のファイルで宣言されたものはすべて、それを呼び出したスコープ内の現在のファイルで使用できるようになります。


何を使うかというと、両方使います。

現在のファイルから DB 接続コードを分離するにはdbcon.php、DB とのインターフェイスに必要なすべてのプロパティとメソッド (関数) を含む DB クラスを別のファイル ( など) に作成します。

次に、DB接続が必要なファイル( などindex.php)で、クラス定義を使用するincludeためにDBクラスを含むファイルを「マージイン」する必要があります。index.php

于 2012-11-11T09:41:22.900 に答える
1

当たり前の質問のように思えますが、とにかく私たちの経験を共有することは興味深いことです。

構成ファイル (定数、つまり) を含めるには、require_once. これがないとシステムは機能せず (必須)、一度だけ (一度だけ) 含める必要があるためです。したがって... classDB configurationconstantsおよびコア ファイルは、 ではrequire_onceなくによって挿入する必要がありますinclude。これは、一部のファイルが欠落している場合、致命的なエラーをスローして実行を停止し、エラー チェーンを防止するためです。

では、いつ ? を使用できますincludeか?

includeinclusionより複雑なコードの一部 (たとえば、他のインクルード) と、システムにとって必須または必須ではないコードの一部に使用する必要があります。たとえば、ビューに 1 つのモジュールを含めることを考えることができます。(tpl ファイルを処理する php ファイルを含めます)。他の開発者とシステムで作業するとき、いくつかの部分が共有され (つまり、データベース)、一部がローカルであると考えています。他の開発者にインクルードの失敗を引き起こす共有部分の何かを変更しても、致命的なエラーは発生しません。(あくまで一例です)

今:function代わりにいつ使うべきですか?

多くの関数を記述する場合、含まれている 1 つのファイル (または、必要なファイル) を使用して、必要なときにこの関数の 1 つを呼び出すことができます。さらに、すべての関数内のコードはカプセル化されているため、コードの他の部分との煩わしい競合が防止されます (信じてください: これは非常に頻繁に発生し、エラーを見つけるのは必ずしも簡単ではありません)。

利点: 1 つのファイルで多くの関数を処理でき、すべてのコードがカプセル化されます。

于 2012-11-11T10:08:17.957 に答える