include.php3的运行结果是:
这是inc1.inc文件中的一个变量的值!
这是inc2.inc文件中的一个变量的值!
inc1.inc文件中的$int变量值为1!
require.php3的运行结果是:
这是inc1.inc文件中的一个变量的值!
inc1.inc文件中的$int变量值为2!
你可以看到在require.php3中$int变为了2,也就是说inc1.inc中的语句被执行了2次,这样看来在循环中require语句只被解释一次,而且会把require语句所在的位置用require的文件内容替代并运行,而在循环中include语句每次都会被解释运行。
[sonymusic]补充道:
require是只执行一次的,不,这么说不恰当。应当说,require是先替代,将指定文件的内容代进来,再运行,所以它不知道你设置了一for循环。而include语句,是什么时候执行到了,什么把指定文件的内容代进来,继续执行。
include.php3:
<html>
<body>
<?
for($i=1;$i<=2;$i++){
include("inc$i.inc");
}
echo $var1;
echo $var2;
echo inc1.inc文件中的$int变量值为 . $int . "!<br>";
?>
</body>
</html>
require.php3:
<html>
<body>
<?
for($i=1;$i<=2;$i++){
require("inc$i.inc");
}
echo $var1;
echo $var2;
echo inc1.inc文件中的$int变量值为 . $int . "!<br>";
?>
</body>
</html>
inc1.inc:
<?
$var1 = "这是inc1.inc文件中的一个变量的值!<br>";
if(isset($int)){
$int++;
}
else{
$int = 1;
}
?>
inc2.inc:
<?
$var2 = "这是inc2.inc文件中的一个变量的值!<br>";
?>