`

include() 与 require() 举例区别

    博客分类:
  • php
 
阅读更多

1.报错
include引入文件时,如果遇到错误,会报出Warning,并继续执行后面的代码;
require引入文件时,如果遇到错误,会报出Error,并停止运行后面的代码。

举例说明,创建两个名为 test-include.php 和 test-require.php 的PHP文件,
注意相同的目录中,不要存在一个名字是test-nothing.php的文件。
test-include.php

1
2
3
4
<?php
include 'test-nothing.php'; //包含一个不存在的文件
echo 'abc';
?>

 

test-require.php

1
2
3
4
<?php
require 'test-nothing.php'; //包含一个不存在的文件
echo 'abc';
?>


浏览http://localhost/test-include.php时,因为没有找到test-nothing.php文件,
会看到类似于下面的Warning信息。同时,报错信息的下边正常显示了abc这个字符串:
Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2

Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2
abc

浏览http://localhost/test-require.php时,因为没有找到test-nothing.php文件,
我们看到了Fatal error报错信息。但是,报错信息的下边没有显示字符串abc:
Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2

Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2

2.条件引用
include是有条件包含函数;
require是无条件包含函数。

例如下面例子,如果变量$somg为真,则将包含文件somefile.php:

 

1
2
3
if($some) {
    include 'somefile.php';
}

但无论$some取何值,下面的代码将把文件somefile.php包含进文件里:

 

1
2
3
if($something) {
    require 'somefile.php';
}

下面的例子充分说明了这两个函数之间的不同

 

1
2
3
4
5
$i = 1;
while($i < 3) {
    require "somefile.$i.php";
    $i++;
}

可以从以上这段代码中看出,每一次循环的时候,程序都将把同一个文件包含进去,
很显然这不我们想要的,可以看出这段代码希望在每次循环时,
将不同的文件包含进来,如果要完成这个功能,只能使用include来实现。

1
2
3
4
5
$i = 1;
while($i < 3) {
    include "somefile.$i.php";
    $i++;
}

3.文件引用方式
include执行时所引用的文件,每次都要进行读取和评估;
require执行时所引用的文件,只处理一次(实际上执行时所引用的文件内容替换了require命令)。

可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require效率比较高,
若每次执行代码时将读取不同的文件或者有通过一组文件叠代的循环,就使用include。

分享到:
评论

相关推荐

    深入理解PHP之require/include顺序 推荐

    总结一下,`require` 和 `include` 结合 `include_path` 的使用可以帮助组织和管理大型项目中的文件结构。理解它们的查找逻辑对于解决由于文件定位不正确导致的错误至关重要。此外,`__DIR__` 和 `__FILE__` 这两个...

    php中echo()和print()、require()和include()等易混淆函数的区别

    在PHP编程语言中,一些函数虽功能相似,但...以上就是PHP中常见的echo()与print()函数、require()与include()函数、isset与empty函数以及等值与恒等运算符的区别。掌握这些知识点,有助于提高PHP编程的效率和代码质量。

    举例详解PHP脚本的测试方法

    修改包括删除不必要的include和require语句,改变函数的调用方式等。例如,可以将header()函数的调用方式从PHP内置函数改为对象方法调用,即使用$this-&gt;header()的形式。 ### 模拟HTTP请求 在测试脚本时,我们需要...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: &lt;script language="php"&gt; . . . 语句 与Perl...

    坏狼的PHP学习教程之第2天

    11. 示例代码:文章中以示例代码的形式展现了上述知识点的具体应用,如echo函数输出、require和include的使用,单双引号的区别,以及变量的使用和简单运算。 通过上述知识点的讲解,我们可以看到坏狼在教程中逐步...

    curl1

    #如何举例 安装 要利用此类,请首先将curl.class.php导入到您的项目中,并要求它。 require_once ( 'curl.class.php' ); 下载文件 $ curl = new Curl (); $ curl -&gt; getFile &#40; 'http://www.example.com' &#41;...

    PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function

    - 使用`include_once`或`require_once`代替`include`和`require`,以确保文件只被包含一次。 - 如果你需要在不同文件中定义相似的类或函数,考虑使用命名空间(PHP 5.3.0+)来避免命名冲突。 - 使用`class_exists...

    PHP编码规范.doc酷乐网整理

    - `include`:包含系统需要引用的文件。 - `parameter`:存放参数文件。 - `config`:存储配置文件。 - `function`:存放函数,特别是按功能模块分类的方法文件,包括JavaScript方法。 - `index`:通常为项目...

    PHP函数spl_autoload_register()用法和__autoload()介绍

    例如,可以通过类名来分析出文件路径,然后使用include或require语句来引入对应的类定义文件。自动加载函数的正确写法对于提高应用程序的效率和可维护性至关重要。 自动加载函数通常应当遵循PSR标准...

    解析PHP高效率写法(详解原因)

    在没有特别需求的情况下,应优先考虑使用require或include来包含文件,减少资源消耗。 7. 使用绝对路径 在包含文件时使用绝对路径,可以避免PHP在include_path中查找文件的问题,减少资源消耗。绝对路径直接指向...

    PHP编程之设置apache虚拟目录

    Require all denied ``` 我们需要修改这段代码,允许Apache处理该目录下的请求。修改为: ``` AllowOverride none ``` 这样配置后,Apache就不会完全拒绝访问根目录下的文件。 3. 添加虚拟目录 接下来,我们...

Global site tag (gtag.js) - Google Analytics