详细解析PHP文件包含
本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了关于文件包含的相关问题,包括了文件包含的概念、作用,文件包含的四种形式,以及文件加载原理的相关内容,下面一起来看一下,希望对大家有帮助。
推荐学习:《PHP视频教程》
一、文件包含的概念
在一个PHP脚本中,去将另外一个文件(PHP)包含进来,去合作完成一件事情。
二、文件包含的作用
- 要么使用被包含文件中的内容,实现代码的共享(重用):向上包含(索要)向上包含:在当前脚本要用某个代码之前包含别的文件
- 要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含(给予)向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)
最大的作用:分工协作,每个脚本做的事情不一样,因此可以使用协作方式,让多个脚本共同完成一件事情。
三、文件包含的四种形式
- Include:包含文件
- Include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)
- Require:与include相同
- Require_once:以include_once相同
(一)向上包含——先包含文件,后使用文件中的内容
被包含文件代码
<h3>文件包含——被包含文件</h3> <?php header("Content-type:text/html;charset=gbk"); $a = 2;$b = 4; define("xiaofeng",'cool');
包含文件代码
<h3>文件包含——包含文件</h3> <?php header("Content-type:text/html;charset=gbk"); include "56.php";//包含文件56.php echo $a,"<hr>",$b,"<hr>",xiaofeng;
(二)向下包含——先准备内容,然后包含另外文件,在另外的文件中,使用当前的内容。
被包含文件代码
<h3>文件包含——被包含文件</h3> <?php header("Content-type:text/html;charset=gbk"); echo $a,"<hr>",$b,"<hr>",xiaofeng;//输出数据
包含文件代码
<h3>文件包含——包含文件</h3> <?php header("Content-type:text/html;charset=gbk"); $a = 2;$b = 4; define("xiaofeng",'cool');//定义数据 include_once '59.php';//包含数据为了显示以上的内容
四、文件加载原理
(一)PHP代码的执行流程
- 读取代码文件(PHP程序)
- 编译:将PHP代码转换成字节码(生成opcode)
- zendengine来解析opcode,按照字节码去进行逻辑运算
- 转换成对应的HTML代码
(二)文件加载原理
- 在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
- 加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include位置
- 在PHP中被包含的文件是单独进行编译的
注意:PHP文件在编译的过程中如果出现了语法错误,那么会失败(不会执行);但是如果被包含文件有错误的时候,系统会在执行到包含include这条语句的时候才会报错。
(三)文件加载路径
文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。
1.绝对路径:从磁盘的根目录开始(本地绝对路径)
- Windows:盘符C:/路径/PHP文件
- Linux:/路径/PHP文件
- 从网站根目录开始(网络绝对路径)
- /:相对于网站主机名字对应的路径
- Localhost/index.php -> E:/server/apache/htdocs/index.php
2.相对路径 :从当前文件所在目录开始的路径
- ./:表示当前文件夹
- ../:上级目录(当前文件夹的上一层文件夹)
3.绝对路径和相对路径的加载区别
1、 绝对路径相对效率偏低,但是相对安全(路径不会出问题)
2、 相对路径相对效率高些,但是容易出错(相对路径会发生改变)
五、文件嵌套包含
一个文件包含另外一个文件,同时被包含的文件又包含了另外一个文件。嵌套包含的时候就很容易出现相对路径出错的问题:相对路径会因为文件的包含而改变(./和../):windows下面,每一个文件夹下都有.和..的文件夹。
六、Include和require区别
(一)Include和include_once的区别:
- Include系统会碰到一次,执行一次;如果对统一个文件进行多次加载,那么系统会执行多次;
- Include_once:系统碰到多次,也只会执行一次。
(二)Require和include的区别
本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不一样
- Include的错误级别比较轻:不会阻止代码执行
- Require要求较高:如果包含出错代码不再执行(require后面的代码)
推荐学习:《PHP视频教程》
以上是详细解析PHP文件包含的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
