zoukankan      html  css  js  c++  java
  • include和require的区别

    1.引用文件方式

    对include()来说,在include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

    2.是否有条件引用

    在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:
    if($something){
    include("somefile");
    }
    但不管$something取何值,下面的代码将把文件somefile包含进文件里:
    if($something){
    require("somefile");
    }
    下面的这个有趣的例子充分说明了这两个函数之间的不同。
    $i = 1;
    while ($i < 3) {
    require("somefile.$i");
    $i++;
    }
    在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
    $i = 1;
    while ($i < 3) {
    include("somefile.$i");
    $i++;
    }

    3.报错

    用例子来说话,写两个php文件,名字为test1.php 和test2.php,注意相同的目录中,不要存在一个名字是test999.php的文件。
    test.php
    <?PHP
    include (”test999.php”);
    echo “abc”;
    ?>

    test2.php
    <?PHP
    require (”test999.php”)
    echo “abc”;
    ?>

    浏览第一个文件,因为没有找到test999.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:
    Warning: include(test1aaa.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

    Warning: include() [function.include]: Failed opening ‘test1aaa.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2
    abc

    浏览第二个文件,因为没有找到test999.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
    Warning: require(test1aaa.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

    Fatal error: require() [function.require]: Failed opening required ‘test1aaa.php’ (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2

    现在就能很清楚的知道include和require的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

  • 相关阅读:
    HDU 1754 I Hate It (Splay 区间操作)
    JavaScript动画知多少?
    使用CSS3的box-shadow实现双透明遮罩层对话框
    检验你的前端基础——Sit the test
    图片拾取器-PicPicker
    JavaScript的前世今生
    前端er是否忽略了某些东西?——读《ppk谈JavaScript》
    IE10,11下_doPostBack未定义错误的解决方法
    (C#)使用NPOI导出Excel
    从天猫和支付宝身上学习opcity与rgba
  • 原文地址:https://www.cnblogs.com/phpfans/p/2111959.html
Copyright © 2011-2022 走看看