PHP中include和require的区别详解

作者&投稿:萧鱼 (若有异议请与网页底部的电邮联系)
PHP中include和require的区别详解~

因为文本太多,故附上链接:http://blog.csdn.net/shenpengchao/article/details/52326233

二种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。
include 使用方法如 include("MyIncludeFile.php"); 。这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。

  在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区别:(include()是有条件包含函数,而require()则是无条件包含函数)

  1, 使用方式不同
  (1) require 的使用方法如 require("requireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。引入是无条件的,发生在程序执行前,不管条件是否成立都要导入(可能不执行)。
  (2) include 使用方法如 include("includeFile.php"); 。这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。引入是有条件的,发生在程序执行时,只有条件成立时才导入(可以简化编译生成的代码)。

  例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:
if($something){
include("somefile");
}

  但不管$something取何值,下面的代码将把文件somefile包含进文件里:

  
if($something){
require("somefile");
}

下面的这个有趣的例子充分说明了这两个函数之间的不同。

$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}

在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():

$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}

  2. 执行时报错方式不同
  include和require的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。例如下面例子:
  写两个php文件,名字为test1.php 和test2.php,注意相同的目录中,不要存在一个名字是test3.php的文件。

  test1.php

<?PHP
include (”test3.php”);
echo “abc”;
?>

  test2.php

<?PHP
require (”test3.php”)
echo “abc”;
?>

  浏览第一个文件,因为没有找到test999.php文件,看到了报错信息,同时,报错信息的下边显示了abc,看到的可能是类似下边的情况:
Warning: include(test3.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Warning: include() [function.include]: Failed opening ‘test3.php' for inclusion (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2
abc (下面的被执行了)

  浏览第二个文件,因为没有找到test3.php文件,看到了报错信息,但是,报错信息的下边没有显示abc,看到的可能是类似下边的情况:
Warning: require(test3.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test2.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘test3.php' (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2

  下面的未被执行,直接结束
  总之,include时执行时调用的,是一个过程行为,有条件的,而require是一个预置行为,无条件的。

require 的使用方法如 require("requireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。引入是无条件的,发生在程序执行前,不管条件是否成立都要导入(可能不执行)。

首先需要说明一下require()语句的性能与include()相类似,但是二者还是存在区别,具体区别如下:
(一)区别一加载次数:
1. include()语句,在执行文件时每次都要进行读取和评估,每次都需要重新加载,适合在需要读取不同文件时使用

2. require()语句,文件只处理一次,只在第一次加载一次,适合在代码多次执行的时候使用

(二)区别二加载时机:
1. incluce在用到时才加载
2. require在一开始就加载


...msg="1234567890"; msg[5]='A' Linux运行不对,HP,Solaris运行对。_百...
msg="1234567890";这样定义就相当于msg指针指向的是一个const变量,也就是说msg = “1234567890”所在的内存区域是不可写的。所以msg[5] = 'A'没有写内存的权限,所以就会报错。char *msg = "1234567890"这样定义编译器编译的时候就会把msg当做是const变量放在不可写的内存区域。include <stdlib.h>...

c语言求解答
第一个答案:include<stdio.h>void delchar(char * str, char c){ int i = 0; if(str[0] =='\\0') return ; if(str[0] == c) { for(i=0;str[i] !='\\0';i++) { str[i] = str[i+1]; } } delchar(str+1,c);}int main(){ ...

c++中window api小程序
include<windows.h> include<math.h> define NUM 10000 define Pi 3.1415926 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInatance,PSTR szCmdLine,int iCmdShow){ static TCHAR szAppName[]=TEXT("正弦曲线");HWND hwnd;MSG msg;WND...

一道C语言编程题
include<stdio.h>#include<stdlib.h>#include<memory.h>int s1[9][9],a,b,w,h,x,y,n;void gc(int a,int b,int hp,int m){ if(hp!=0) { if(s1[a][b]==3) {if((m<n)||(n==0)) n=m;}else { if(s1[a][b]==4) hp=6; if(s1[a-1][b]!=0) ...

1.设单片机主频6MHZ 定时器T1用作波特率发生器 波特率为2400b\/S串...
include<reg51.h> unsigned char UART_RX; \/\/定义串口接收数据变量 unsigned char RX_flag;\/\/定义穿行接收标记 函数名:UART串口初始化函数 调 用:UART_init();参 数:无 返回值:无 结 果:启动UART串口接收中断,允许串口接收,启动T\/C1产生波特率(占用)备 注:振荡晶体为6MHz,PC...

5. 执行以下程序后,输出'#'号的个数是 。 #include <stdio.h> main...
i=1时.j=2,j>i,不输出 i=2时,j=2,满足,输出一个 i=3时,j=2,3满足条件,输出2个 i=4时,j=2,3,4满足条件,输出3个 所以一共输出6个

删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s...
include <stdio.h> int main () {int i,n=0;char ch,c[100];printf("Input a string: ");while ((ch=getchar()) != '\\n'){c[n++]=ch;}printf("Input a char: ");scanf("%c",&ch); printf("After deleted,the string is: ");for(i=0;i<n;i++)if (c[i]!=ch)...

3. 用任意一种编程语言(C\/C++\/Java\/C#\/VB.NET)写出任意一种你所知的...
include<stdio.h> include<stdlib.h> void BubbleSort(int a[], const int first, const int last);\/\/冒泡排序 void InsertSort(int a[], const int first, const int last);\/\/插入排序 void SelectSort(int a[], const int first, const int last);\/\/选择排序 void MergeSort(int a[]...

计算机专业的单词
一、《计算机专业英语》1. file n. 文件;v. 保存文件 2. command n. 命令,指令 3. use v. 使用,用途 4. program n. 程序 5. line n. (数据,程序)行,线路 6. if conj. 如果 7. display vt. 显示,显示器 8. set v. 设置,n. 集合 9. key n. 键,关键字,关键码 10. ...

[gcc &c语言] 随机生成8位的数字字母组合
程序有一个参数,表示生成的密码的长度 运行的时候要加上,比如.\/password 8 我写的很简单,参数没做检查,你应该自己去完善一下。include <stdlib.h> include <string.h> include <stdio.h> void generate(int len,char* buffer){ \/*产生密码用的字符串*\/ static const char string[]= "...

屯留县13357731717: PHP中include和require的区别详解 -
撒鱼半水: 1.include与require的区别 require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份.常用的函数,亦可以这个...

屯留县13357731717: PHP中include和required区别是什么? -
撒鱼半水:require()语句的功能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()...

屯留县13357731717: php中require和include的区别 -
撒鱼半水: HP的include()和require()是两种包含外部文件的方法,二者的区别如下:1:加载失败的处理方式不同:include()会产生一个警告,而require()则导致一个致命的错误(出现错误,脚本停止执行)require() :如果文件不存在,会报...

屯留县13357731717: php中include和require有什么区别 -
撒鱼半水: 平常是没区别的.当要加载的文件不存在时候, include会给一个warning警告, 然后继续运行. 而require则会给一个fatal error, 直接结束脚本

屯留县13357731717: [php]require 和include -
撒鱼半水: 简单说一下 require和include,前者当包含的文件不存在时,程序停止执行,后者当包含的文件不存在时只是报一个警告,程序继续执行.require和require_once,这两个区别为,前者遇到即包含文件,后者会判断是否已经包含过了,如果包含...

屯留县13357731717: php中include和require有什么区别?
撒鱼半水:天南给你解说下:@在PHP中是抑制符,用来抑制错误信息输出; include 或 include_once 包含文件,如果文件包含失败,则向页面输出错误信息,然后继续执行后续代码; 而require 或 require_once 包含文件,当文件包含失败时,向页面输出错误信息,并停止当前页面的解析; 所以严格意义上讲,当我们要包含文件时,请使用 require 或 require_once

屯留县13357731717: php 中 include 和 require 的区别? -
撒鱼半水: 这两种结构除了在如何处理失败之外完全一样.include() 产生一个警告而 require() 则导致一个致命错误.换句话说,如果你想在遇到丢失文件时停止处理页面就用 require().include() 就不是这样,脚本会继续运行.我记得我在黑马程序员社区刷面试题的时候刷到过这个题.如果有类似的问题,基本上都可以到社区找到答案,板块很清晰,上面也会有同道中人大家一起讨论.气氛很好

屯留县13357731717: php使用include和require的却别? -
撒鱼半水: inlcude包含文件时有条件的,require无条件,如果文件不存在,或者出错,include只是warning一个警告,而require是致命的错误.

屯留县13357731717: php使用include 和require引入文件的区别 -
撒鱼半水: require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误. 以下为补充:1. include有返回值,而require没有.2. include()包括并运行...

屯留县13357731717: php 中include()与require()的对比~呢? -
撒鱼半水: include遇到错误和文件不存在,不会报错,程序可以继续执行.require遇到文件不存在,会报错找不到文件,程序终止.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网