问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP中include和required区别是什么?

发布网友 发布时间:2022-04-06 03:38

我来回答

3个回答

热心网友 时间:2022-04-06 05:07

require()语句的功能与include()相类似,都是包括并运行指定文件。不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。这就意味着如果可能执行多次的代码,则使用require()效率比较高。另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。

详细区别:

区别一、

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

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

区别二、

用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如

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

这段代码中不论$something取何值,somefile.php都会被包含近文件,而如果使用include,则只有$something为真的时候才会包含文件somefile.php。

区别三、

include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),可以给想要包括的文件名设置变量,当参数为 include()时使用这个变量。

热心网友 时间:2022-04-06 06:25

include 是比较松一点的“包含”,如:文件不存在也不什么出现问题,程序还可以往下执行。

required是比较严格“包含”,如:文件不存在或无权限访问时,程序马上抛出错并中止。

热心网友 时间:2022-04-06 08:00

一、require()所在位置的语句不被执行,require()所包含的文件中的语句也不会被执行。 二、require()语句的功能完全适用于include()语句。下边介绍require()语句所没有的include()语句的功能和特点。 include语句只有在被执行时才会读入要包含的文件。
.require()语句 使用require()和include()语句时要特别的注意。那就是在被包含的文件中,处理器是按照html模式来解释其中的内容的,处理完被包含的内容后又恢复到php模式。所以如果需要在被包含文件中使用php语法,就要使用正确的php开始和结束标记来把这些语句包含进去。
require()和include()知识php中的一种语言特性,而不是函数。它们和函数有许多不同的地方。
比如:require()所包含的文件中不能包含控制结构,而且不能使用return这样的语句。在require()所包含的文件中使用return语句会产生处理错误。
不象include()语句,require()语句会无条件地读取它所包含的文件的内容,而不管这些语句是否执行。所以如果你想按照不同的条件包含不同的文件,就必须使用include()语句。当然,如果require()所在位置的语句不被执行,require()所包含的文件中的语句也不会被执行。
require()不能在循环体中根据条件的不同而包含不同的文件。require()语句只会在第一次执行时调用它所包含的文件中的内容替换本身这条语句,当再次被执行时只能执行第一次所包含的语句。但是include()语句可以在循环体中来包含不同的文件。
require()语句中的变量继承require()语句所在位置的变量作用域。所有在require()语句的位置可以访问的变量,在require()语句所包含的文件中都可以访问。如果require()语句位于一个函数内部,那么被包含文件内的语句都相当于定义在函数内部。
require()语句在PHP程序执行前就会将使用require引用的文件读入,因此require通常放到程序的开始处。因此要特别注意一点,require语句有一点强,不管程序是否真的需要引用的文件,只要你使用require语句,它都会把他们包含进来!即使你是在条件控制语句中使用这个函数进行包含,那怕是那个条件不为真,引用文件也会被包含进来!形成了僵尸,在运行过程中这些僵尸是不起任何可见作用的,但是很明显它会加重负担,所以这一点要特别注意!如果使用require语句发生了包含错误,那么程序将输出出错信息并停止运行!!

如果require()语句通过声明文件的URL来包含远程文件,而且远程服务器按照php代码来解释该文件的话,本地php文件中所包含的内容是在远程服务器上处理以后的结果。例如:

本来在php3.0中,require()所包含的文件可以使用return语句,但条件是return语句不能出现在{}内部,而必须出现在被包含文件的全局范围内。在php4.0中已经取消了require()的这个功能,但是仍然可以使用include()来实现。
2.include()语句 include()语句和require()语句有许多相同的地方。凡是在上边require()语句中没有明确说明不能适用于include()的部分外,require()语句的功能完全适用于include()语句。下边介绍require()语句所没有的include()语句的功能和特点。
include语句只有在被执行时才会读入要包含的文件。在错误处理方便,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!
php处理器会在每次遇到include()语句时,对它进行重新处理,所以可以根据不同情况的,在条件控制语句和循环语句中使用include()来包含不同的文件。
例如:

在php3.0和php4.0中include()语句所包含的文件中都可以使用return语句来返回一个值,并停止执行被包含文件下面的内容。但php3.0和php4.0在处理这样的情况时有所不同。在php3.0中return语句不能包含在{}内,除非它在一个函数中,因为这时它表示函数的返回值而不是文件的返回值。而在php4.0中就没有了这样的*,用户甚至可以在文件中返回一个数字,就象函数的返回值一样。这样的语句在
php3.0中通常会报告错误。以下举例说明: 假设被包含的文件为test.inc和主文件main.php位于一个目录中。

在php5.0中的输出结果也是: Before the return
Back in main.html

在php3.0中的输出结果是: Before the return
27Back in main.html

Parse error:parse error in /apache/htdocs/phptest/main.html on line 5
出现上面的错误是因为return语句位于{}内部而且不是一个函数内部。如果把{}去掉,使它位于test.inc的最外层,输出结果是: Before the return
27Back in main.html
之所以出现27,是因为在php3.0中不支持include()返回。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 PHP中的require引入一个文件,很多都说是在程序执行之前就先读入了要引入的文件 关于php require() 的深层次理解。类中方法使用require()引用其他类,本质是如何执行? PHP怎么用require引入文件? php中的require到底是函数还是语法 有关PHP中require的问题 PHP中的require()和require_once()函数有什么区别? wordpress的functions.php里面可以用require语句吗?怎么用require引入文件呢? PHP中include和require的区别详解 php中require和include的区别 php require_once()函数的使用方法 如何学习PHP require php里面require和include的区别? PHP 的 require函数 require函数的php中的require 怎麼实现php网站网址的自定义url? PHP的路由是什么 还有什么通俗的说法吗 PHP实现跳转到另外一个URL地址,如何实现呢? php 路由作用 php怎么学会一个框架的路由机制? php 写框架时如何实现url:/控制器/方法来访问页面 php里的require_once是什么意思 php中require和require_once的区别说明 php中语句include和require的区别 php require_once()怎么用的疑问 cookie作用域的设置 PHP 设置跨域 域名cookie php cookie怎么作用域二级域中 php 关于 cookie 作用域 与 修改cookie值 高手请进,php中cookie作用域问题 php setcookie中path和domain怎么设置 ASP如何设置cookie的作用域?(高分求解!) php 设置cookie,添加任意主域名 PHP中如何使用Cookie PHP中cookie的使用 php可不可以跨域设置cookie(只有一个网站是我做的情况下) php里的cookie怎样使用才是正确的 ThinkPHP5设置Cookie有何讲究 php的post和get怎么实现的 对于https协议的网站,可以用php 的curl来模拟get请求和post请求吗,能得到返回值吗? 能不能把PHP CURL提交的GET或POST请求完整的打印?