php中require(),include(),require_once()和include_once()区别

引用文件的方法有两种:require 及 include

require 的使用方法如 require("file.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include("file.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

_once 后缀表示已加载的不加载

主要区别为以下几个部分:

1、报错

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 

include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

2、条件引用

include()与require()的功能相同,用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。

例如下面例子,如果变量$somg为真,则将包含文件somefile.php:

if($some){

 include 'somefile.php'; 

}

而无论$some取何值,下面的代码将把文件somefile.php包含进文件里:

if($some){ 

require 'somefile.php'; //不管$some为真假,都会加载somefile.php文件

}

3、文件引用方式

include有返回值,而require没有 

$retVal = include(’somefile.php’); 

if(!empty($retVal)){ 

echo "文件包含成功"; 

}else{ 

echo "文件包含失败"; 

}

include()执行时需要引用的文件每次都要进行读取和评估。

require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)。


附:

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() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值