Rumah > Artikel > pembangunan bahagian belakang > php函数导入与文件包含:include() 和 require() 语句的区别
在PHP脚本中想使用文件中定义的函数,就需要使用 include()、include_once()、require()和 require_once() 中的一个函数,将函数库文件载入脚本程序中。上一章节中我们谈到了在php中如何使用自定义函数库,这一章节就具体的谈谈require()和include()的区别联系有哪些。
PHP提供了两种包含外部文件的方法:require()和include()都属于服务器端引用(Server Side Includes)中的常用方法。
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。require包含文件的时候是绝对的包含,如果被包含的文件不存在那么会产生一个致命错误(fatal error),在错误发生后下面的脚本程序将不会执行,此外,因为require语句相当于将另一个源文件的内容完全复制到本文件中,所以一般将其放在源文件的起始位置,用于引用需要使用的公共函数文件和公共类文件等。
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。include的包含文件是相对的,如果被包含文件不存在,那么会产生一个warning警告,但是下面的脚本程序继续执行,此外, include包含的文件一般写在程序执行中。
include()和require()的区别
include()和require()的区别 这相信是PHP中最基本的问题了,这两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。
require() :如果文件不存在,会报出一个fatal error.脚本停止执行
include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行
php的require()性能与include()相类似。不同之处在于,对include()来说,在 include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语 句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执行代码时相读取不同的文 件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。
其他一些联系与区别的补充
1. include有返回值,而require没有。
2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。
3. include_once()的作用和include()是几乎相同的
唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。
4. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。
5. 如同include_once(),require_once()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
6. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。
下面的例子充分说明了这两个函数之间的不同:
写两个php文件,名字为test-include.php和test-require.php,注意相同的目录中,不要存在一个名字是test1.php的文件。
test-include.php <?php include 'test1.php'; echo 'abc'; ?>
运行上面的代码,因为没有找到test1.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:
Warning: include(test1.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 3 Warning: include() [function.include]: Failed opening 'test1.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 3 abc
test-require.php <?php require 'test1.php'; echo 'abc'; ?>
运行上面的代码,因为没有找到test1.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
Warning: require(test1.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 3 Fatal error: require() [function.require]: Failed opening required 'test1' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 3
【相关教程推荐】
2. 视频教程:函数导入与文件包含:include和require的使用
3. php实战视频教程
Atas ialah kandungan terperinci php函数导入与文件包含:include() 和 require() 语句的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!