• 技术文章 >后端开发 >php教程

    详细解析PHP文件包含

    长期闲置长期闲置2022-04-18 21:25:11转载636
    本篇文章给大家带来了关于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代码的执行流程

    1. 读取代码文件(PHP程序)
    2. 编译:将PHP代码转换成字节码(生成opcode)
    3. zendengine来解析opcode,按照字节码去进行逻辑运算
    4. 转换成对应的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中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:PHP
    上一篇:归纳整理php中的魔术方法 下一篇:PHP详细解析之phar
    Web大前端开发直播班

    相关文章推荐

    • php怎么实现文件写入不覆盖• php怎么判断几个数的大小• thinkphp中where方法怎么用• thinkphp中fetch方法怎么用• 图文详解thinkphp如何配置环境运行

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网