PHP中include和require的区别详解

2024年12月01日 04:43
有3个网友回答
网友(1):

PHP中引用方法主要分为两种,分别是:

  • include (细分为include和include_once)

  • require (细分为require和require_once)

这两类都可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。但是在错误处理方面有一定的区别.

  • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本

  • include 只生成警告(E_WARNING),并且脚本会继续

所以在使用的时候要明确

如果你的程序需要在引用错误的时候还要继续执行,就使用include(如:不怎么重要的文件.不会对结果产生很大影响的文件.)

如果引用失败就立即停止,必须保证程序完整性的,则使用require.(如:货币计算处理文件,对结果会产生很大影响,很重要的文件.)

include_once和require_once

这两种在错误处理的时候与include和require一致,但是在使用include_once和require_once引用文件的时候,仅仅引用一次,可以避免多次引用时错误.

在实际使用中,建议使用include_once和require_once来引用文件,既能达到原有目的,也能避免多次引用带来的错误.

网友(2):

二种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。
include 使用方法如 include("MyIncludeFile.php"); 。这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。

网友(3):

PHP中include和require的区别详解:

1、加载文件方式不同

对于include()语句,在执行文件时每次都要进行读取和评估;

对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。

2、使用的场景不同:

  • 如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。

  • require的使用方法如:require("myfile.php"),这个语句通常放在PHP脚本程序的最前面。

  • include使用方法和require一样如:include("myfile.php"),而这个语句一般是放在流程控制的处理区段中。

3、使用上的区别:

include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。

require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

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

test-include.php代码如下:

include 'test-nothing.php';
echo 'abc';
?>

test-require.php代码如下:

require 'test-nothing.php';
echo 'abc';
?>

浏览http://localhost/test-include.php,因为没有找到test-nothing.php文件,我们看到了报错信息,同时,报错信息的下边显示了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


浏览http://localhost/test-require.php,因为没有找到test-nothing.php文件,我们看到了报错信息,但是,报错信息的下边没有显示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