最近有小伙伴,提问了有关于require_once的有关问题,对于程序中遇到的问题,无聊难度大小,只要bug存在就还值得我们去探索,去解决。针对这个问题,我把include和require的详细用法进行归纳。(结合查阅资料和自己的理解,整合出来的)希望能给有需要的小伙伴一点帮助。

引入文件:

首先需要一个php文件:

class shao//类名必须和文件名相同!!!

{

public $xxx="666";

}

$shili = new shao();

echo $shili->xxx;

?>

引用:

//引入文件

include "shao.php";//引用文件;只能引用一遍

//引用多个则费劲

//include_once("shao.php");//一次又一次

//也可以require ("shao.php");

?>

其中include与require的区别:

require:

执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。

require() :无条件包含,如果文件不存在,会报出一个fatal error.脚本停止执行

require遇到错误时,直接报错并停止运行程序

include:

执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。

include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行

include遇到错误时(引用的文件不存在),PHP只是报错,但程序会继续运行下去

以下为补充:

1. include有返回值,而require没有。

2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。

3. include_once()的作用和include()是几乎相同的 唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。

4. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。 这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。

5. 如同include_once(),require_once()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

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

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

8. include一般是放在流程控制的处理部分中PHP程序网页在读到include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。

推荐使用require_once()和include_once(),可以检测文件是否有重复包含。

自动加载:

被引用的php文件:

class shao//类名必须和文件名相同!!!

{

public $xxx="666";

}

?>

自动加载:

function __autoload($asd)

{

require $asd.".php";//可填地址查找

}

$shili = new shao();

echo $shili->xxx;

?>

include引用php,php使用include 和require引入文件的区别相关推荐

  1. php+include+引入html文件,include引入文件

    php include引入文件问题 include __DIR__ . ' ../lianxi1.php'; 为什么..前面不加/不对 lianxi前include函数是引入文件 命名空间解决的是同一 ...

  2. PHP 中 include 和 require 的概要及区别介绍

    require() 语句的性能与 include() 相类似,都是包括并运行指定文件.不同之处在于:对 include() 语句来说,在执行文件时每次都要进行读取和评估:而对于 require() 来 ...

  3. php中include和require,在PHP中include和require到底有什么区别呢?

    在PHP中include和require到底有什么区别呢?看这里的例子就知道了 include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量 ...

  4. PHP中include与require的特点和区别说明

    引用文件的方法有两种:require 及 include.两种方式提供不同的使用弹性. require 的使用方法如 require("MyRequireFile.php"); . ...

  5. ruby include require load extend 的区别

    ruby include require load extend 的区别 -–require/load-- 在功能上require和load都是用来导入文件的. 区别如下: require 用来加载库 ...

  6. css sass的@mixin 与 @include引用

    @mixin 指令允许定义一个可以在整个样式表中重复使用的样式 @mixin flex-j($type: space-between, $type2: center) { display: flex; ...

  7. mapper中 <include refid=“XXX“></include>标签 <sql id=“XXX“>标签

    引言 include标签用法是引用sql片段 sql标签 是书写sql片段 被include 引用的 <sql id="query_where"><where&g ...

  8. #include <filename> 和 #include “filename“ 有什么区别?

    问: 在 include 指令中使用尖括号和引号有什么区别? #include <文件名> #include "文件名" 答1: huntsbot.com全球7大洲远程 ...

  9. #include中用双引号和用尖括号括起来头文件的区别

    双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件; 尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件; 尖括号: 在 ...

最新文章

  1. Centos6.6下载
  2. ”舍得“大法:把自己的优点当缺点倒出去
  3. ListView, GirldList 等setCurrentItem 不立即刷新
  4. 基于Android移动终端的微型餐饮管理系统的设计与实现1-简介
  5. 技术帖:砖混、砖木、钢混、板楼、塔楼、框架、框架剪力墙等概念之区别优劣...
  6. IntelliJ Idea工作笔记009---代码没有错,但是在IDEA报错的原因
  7. DataTable/DataSet汇出Excel
  8. Web前端开发大系概览 (前端开发技术栈)
  9. 跨服务器、跨数据库、多表联合查询
  10. php 聊天室设计,基于PHP+MySQL的聊天室设计_PHP教程
  11. 微博三方登陆-02.微博开放平台注册及使用
  12. 新手入门3D游戏建模一定要搞懂的流程!
  13. 神经网络权重是什么意思,神经网络权重调整方法
  14. Pandas和Numpy:常见函数参数inplace的作用
  15. Flutter开发 - 对于富文本展示的方法封装
  16. 织梦网站巧用标签实现图片自动Alt功能,强化织梦seo效果
  17. 【群控】通过adb命令实现接打电话发短信脚本
  18. Fragment overlap problem
  19. 渠道广告联盟SDK接入思路总结
  20. 电脑桌面便签怎么添加

热门文章

  1. ncl 添加点shp文件_一:python读取shapefile文件
  2. C++之关于虚函数和多态的分析和补充
  3. mysql 分页查询几种语法_各数据库2种分页语法支持
  4. mongodb 备份压缩_MongoDB-备份和恢复
  5. python的turtle画小人_Pythonturtle画图库画姓名实例
  6. python数据检索_python – Hachoir – 从组中检索数据
  7. windows安装python库_Windows安装Python机器学习包
  8. C++scoket编程(三):3.8 TCPserver开启多线程并发
  9. es6 取数组的第一个和最后一个_全球最恐怖的3个泳池,第一个有10层楼高,最后一个听名字就害怕...
  10. Java JSP EL