• php中require 和 Include 的区别讲解
    时间:2009-10-25   作者:佚名   出处:互联网

    这两个其实相差不太多,但是有些细微差别,小的差别也能使程序中大不一样,个人觉得里面的例子 举例得非常的好 希望对大家有所帮助

    手册里是这么解释的:

    require()   和   include()   除了怎样处理失败之外在各方面都完全一样。include()   产生一个警告而   require()   则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用   require()   吧。include()   就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。

    就是说再解析程序时即读取require的文件,而不是解析后, 

    如果不能读取到被require的文件,就不能进行下一步动作。 
    所以,不被正确包含就会导致程序的文件,用require比较好。 

    可能效率上也略微高点。 
    --------------------------------------------------------------- 

    require()   无论如何都会包含文件,而   include()   可以有选择地包含: 
    <?php 
    if(FALSE){ 
        require('a.php'); 

    if(FALSE){ 
        include('b.php'); 

    ?> 
    a.php   一定会被包含,而   b.php   一定不会被包含。

    在PHP中include和require到底有什么区别呢?看这里的例子就知道了

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

    网友留言/评论

    我要留言/评论