为了账号安全,请及时绑定邮箱和手机立即绑定

请问在PHP中的require()和require_once()函数有什么区别?

/ 猿问

请问在PHP中的require()和require_once()函数有什么区别?

阿波罗的战车 2019-10-21 15:14:20

PHP中的require()和require_once()函数有什么区别?


查看完整描述

4 回答

?
慕莱坞森

常用于普通级别套用文件
include 套用一个文件,如果文件不存,只是一个提示,然后继续执行。
include_once 套用一个文件,只能套用一次,如果文件不存,只是一个提示,然后继续执行。

常用于重要级别套用文件
require 套用一个文件,如果文件不存在,会中断程序执行。
require_once 套用一个文件,只能套用一次,如果文件不存在,会中断程序执行。

查看完整回答
反对 回复 2019-10-26
?
qq_花开花谢_0

require() 会导致一个致命错误,如果你想在遇到丢失文件时停止处理页面就用 require(),这样页面就会中止运行.
require_once()也会导致一个致命错误,但是require_once()一但包含的文件已经被包含了,就不会再次被包含.

查看完整回答
反对 回复 2019-10-26
?
慕娘9325324

require_once() 为了避免重复加载文件。

意为:加载文件一次

require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。

一般都用在包含文件的时候,比如你写了一个类文件a.php,这个文件主要是定义类,代码可能如下:

class p

{

public $a;

function make(}

{

echo $a;

}

}

这个时候你在文件b.php中要使用到该类,就可以再b.php开头加上,require_once(a.php);来加载这个a.php,就相当于把a.php的文件的代码复制到了b.php中。类似的方法还有requeire(),include(),include_once()其中带_once字样的方法都是声明只加载一次,因为你require_once()的别文件中可能已经require_once(a.php)了,如果再加载就造成重复加载,代码量会增加造成解析减慢。

查看完整回答
反对 回复 2019-10-26
?
开满天机

include() 和require() :语句包括并运行指定文件。
include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
1.include() 函数会将指定的档案读入并且执行里面的程序。
例如:include('/home/me/myfile');
被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include() 函数的位置相同的变量范围(variable scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用 include() 与 fopen() 函数来导入其它服务器上面的档案。
2.include_once()函数的作用和 include() 是几乎相同的
唯一的差别在于 include_once() 函数会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入该档案(这项功能有时候是很重要的,比方说要导入的档案里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个档案,在第二次导入的时候便会发生错误讯息,因为 PHP 不允许相同名称的函数被重复宣告第二次)。
3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。
这个读入并且代换的动作是在 PHP 引擎编译你的程序代码的时候发生的,而不是发生在 PHP 引擎开始执行编译好的程序代码的时候(PHP 3.0 引擎的工作方式是编译一行执行一行,但是到了 PHP 4.0 就有所改变了,PHP 4.0 是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require() 通常来导入静态的内容,而 include() 则适合用来导入动态的程序代码。
4.如同 include_once()函数,require_once() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。



查看完整回答
反对 回复 2019-10-26

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信