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>"; ?> |