PHP では、include と require の関数は混同されやすいです。以下では、古典的な例を使用して、それらの違いを詳しく説明します。
データベースに頻繁にアクセスする場合は、接続ステートメントをファイル
con_db.php
$dbh = mysql_connect(' localhost','','');
mysql_select_db('admreqs');
?>
実際のアプリケーションでは、プログラム内でこのファイルを呼び出すことができます。
たとえば、require("con_db.php") または include("con_db.php)
この時点で、2 つの関数の効果はほぼ同じです。
しかし、これを使用する場合
filename.php
require("con_db.php")
function myfun($par1,$par2)
{データベースの処理されたステートメントが含まれます}
....
myfun($par1,$par2);
....
myfun($p1,$p2);
?>
ファイルが myfun に到達しても、$dbh が変数として関数に渡されない限り、関数内で外部変数を取得できないため、ファイルは実行されません。
この問題は、関数内に require または include を入れることで解決できます。 include を使用すると、ファイル内の最初の関数呼び出しが実行されます。正常に通過しますが、2 回目の呼び出しはデータベースを閉じないと実行されません。つまり、con_db.php を require に置き換えると、すべてが正常になります。 require も同様で、プログラムが実行されると、関数の内部または外部に関係なく、require ファイルが最初に実行され、一度だけ実行されますが、include は実行されるたびにファイルを呼び出します。つまり、この実行後、次回実行されるときに再度実行されます。
したがって、ループ内で特定のステートメントを 1 回だけ実行したい場合は、require を使用してそれらを含めることができます。