现在的位置: 首页 > 综合 > 正文

请教一下include和require的区别,谢谢!

2013年10月19日 ⁄ 综合 ⁄ 共 960字 ⁄ 字号 评论关闭

1,require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require

这个已经不适用了,因为require 可以包含变量指向的文件如

if($a = 1){
$file = '1.php';
}else{
$file = '2.php';
}
require($file);

2,包含文件不存在或者语法错误的时候require是致命的, include不是

3,include有返回值,而require没有(可能因为如此require的速度比include快)
$login = include('test.php');
if(!empty($login)){
echo "文件包含成功";
}else{
echo "文件包含失败";
}

引用文件的方法有两种:require 及 include。两种方式提供不同的使用弹性。

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

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

------------------

对第一点表示反对,那样写太麻烦了,遇到这种判断包含情况,下面这样写比较方便:
<?
  if($a==1)
    require '1.php';
  else
    require '2.php';
?>

------------------

楼上犯了一个很大的错误。你上面这个逻辑无论是否成立,两个程序都会被运行。这是include和require的区别。

------------------

require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。

抱歉!评论已关闭.