PHP中include()与require()的区别说明

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require  的使用方法如  require ( "MyRequireFile.php" ); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入  require  所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include  使用方法如  include ( "MyIncludeFile.php" ); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到  include  的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
 
他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。 
 
require 一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 
include 一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。 
 
以下为补充:
 
1.  include 有返回值,而 require 没有。 
 
2.  include ()包括并运行指定文件 在处理失败时 include () 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include ()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。 
 
3.  include_once ()的作用和 include ()是几乎相同的 
唯一的差别在于 include_once ()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。 
 
4.  require ()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时 require () 则导致一个致命错。 
这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。 require ()通常来导入静态的内容,而 include ()则适合用导入动态的程序代码。 
 
5. 如同 include_once (), require_once ()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。 
 
5.  require 是无条件包含也就是如果一个流程里加入 require ,无论条件成立与否都会先执行 require 。 
 
7.  require 通常放在PHP程序的最前面,PHP程序在执行前,就会先读入 require 所指定引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 
 
8.  include 一般是放在流程控制的处理部分中PHP程序网页在读到 include 的文件时,才将它读进来。 这种方式可以把程序执 行时 的流程简单化。
本文转自 IT阿飞 51CTO博客,原文链接:http://blog.51cto.com/itafei/1867570
相关文章
|
4月前
|
PHP
PHP public、protected、private、static、abstract、final、interface、implements 区别对比
PHP public、protected、private、static、abstract、final、interface、implements 区别对比
29 0
|
8月前
|
PHP
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
63 0
|
4月前
|
PHP 调度
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
28 5
|
4月前
|
PHP
php中elseif 和else if的区别
@(黑线)以前貌似看到if这里,就直接跳了,可是今天再读文档,又发现了点东西... @(乖)可能你已经知道了php存在elseif 和else if,保留了c的风格。
24 0
|
10月前
|
机器学习/深度学习 安全 Java
PHP, Python和Java的区别
PHP, Python和Java是广泛使用的编程语言。每种编程语言都有其独特的优点和缺点。在本文中,我们将对这些编程语言进行分析,并探讨它们在不同应用场景中的最佳用途。
|
8月前
|
数据处理 PHP
PHP面向对象和面向过程的区别
PHP面向对象和面向过程的区别
46 0
|
8月前
|
PHP 调度
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
70 0
|
存储 PHP
PHP重的重载和重写的区别是什么?底层原理是什么?
PHP重的重载和重写的区别是什么?底层原理是什么?
118 0