7

すべてのページに共通のデータベース接続のようなphpコードを使用しているので、phpコードを含むphpファイルを作成し、このファイルをHTMLコードに含めます。したがって、含めるためのより良い方法を知りたいです。 phpファイル、include関数のより良い代替。私のサンプルコードはここにあります

<?php
    include "check_timeout.php";
    include "connect_to_db.php";
?>
<html>
<head>
    <title>Example</title>
</head>
<body>
<?php
    mysql_close($con);
?>
</body>
</html>

前もって感謝します。

4

2 に答える 2

18

4つのオプションから選択できます。

'yourfile.php'を含める;
include_once'yourfile.php';
'yourfile.php'が必要です。
require_once'yourfile.php';

もちろん、'の代わりに"を使用することもできます。

それらはすべて、小さな違いを除いて同じことをします。

yourfile.phpが存在しない場合、includeのものはその事実を無視し、phpページは致命的なエラーなしで先に進みます。

一方、必要なものは致命的なエラーを作成します。

そのファイルがそこにあることがわかっている場合は、どちらを選択しても違いはありません。

_once後置のオプションに関しては、まあ、それらは_once後置のない対応物と比較して遅くなる傾向があります。include_onceまたはrequire_onceを使用すると、PHPは、これらのファイルが本当に1回だけ含まれるようにするために追加の作業を行います。不注意にコーディングし、多くのファイルが多くのインクルードを使用し、遭遇する可能性がある場合に、二重インクルードの可能性から保護します。同じファイルが2回含まれる状況。まあ、_onceオプションはそれを防ぎます。そして、そのチェックにはいくらかの処理コストが伴います。

また、ファイル区切り文字に「ではなく」を使用していることに気付きました。次のようなファイル内の変数名を参照する場合を除いて、「以上」を選択する理由はありません。

$ thefile ='yourfile.php; 「$thefile」を含める;

では、これら4つからどれを選ぶのでしょうか。_onceの問題を強制する必要があると思われる場合は、include_onceまたはrequire_onceのいずれかを選択し、それが不要であると思われる場合は、includeまたはrequireを選択します。include vs requireに関しては、PHPスクリプトを終了するか、何らかの理由でファイルにアクセスできない場合に先に進むかがすべてです。

いくつかの速度テストに興味がある場合は、ここにチェックアウトするためのリンクがあります。 http://php.net/manual/en/function.require-once.php

私もこれを主題で見つけました。

requireとincludeの違いを理解するPHPマニュアルによると、requireとincludeは、「障害の処理方法を除いて、すべての点で同一です」。ただし、マニュアルをさらに読むと、パフォーマンスに影響を与える別の非常に微妙な違いがわかります。requireキーワードを使用すると、requireキーワードを使用するファイルがコンパイルされるときに、指定されたファイルが読み込まれ、解析され、コンパイルされます。includeキーワードを含むファイルがコンパイルされるとき、指定されたファイルは最初に読み込まれ、解析され、コンパイルされません。そのコード行が実行された場合にのみ、ファイルが読み取られ、解析され、コンパイルされます。現在のスクリプトでその名前付きファイルが常に必要になることがわかっている場合にのみ、requireキーワードを使用してください。その関数を使用する可能性がある場合は、代わりにincludeを使用してください。PHPは、必要なすべてのファイルを開きます。ただし、必要に応じて含まれているファイルのみを開きます。さらに、requireとincludeの代わりにrequire_onceとinclude_onceをそれぞれ使用することも検討する必要があります。実際には、requireキーワードとincludeキーワードをそれぞれ使用するのがはるかに一般的ですが、require_once関数とinclude_once関数によって提供される機能が実際に必要になる可能性が高くなります。詳細については、次のPHPマニュアルページを参照してください:include、include_once

ソース: http ://www.stevengould.org/portfolio/developerWorks/efficientPHP/wa-effphp/wa-effphp-a4.pdf

于 2012-12-29T07:14:36.013 に答える
6

常に使用するrequireか、何かが正しく構成さrequire_onceれていない場合に受け取るように。E_COMPILE_ERROR

パフォーマンスの面では、include機能require的には同じになります。

それrequire自体は、各ファイルに含まれているコードと同じくらいパフォーマンスが高くなります。

于 2012-12-29T07:08:40.770 に答える