• PHP基础04---文件包含


    文件包含

    ​ 在一个PHP脚本中,去将另外一个文件(PHP)包含进来,合作去完成一件事情。

    一、文件包含的作用

    1. 使用被包含文件中的内容,实现代码共享(重用):向上包含(索要)
    2. 自己有东西可以给别的文件使用,实现代码共享(重用):向下包含(给予)

    向上包含:在当前脚本要用某个代码之前包含的文件(用别人的

    向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件) (给别人用

    最大的作用为:分工协作,每个脚本做的事情不一样,因此可以通过协作,让多个脚本共同完成一件事情。

    二、文件包含的四种形式

    • include : 包含文件
    • include once : 系统会自动判断文件包含过程中,是否被包含过(每个文件最多被包含一次
    • require : 与include相同
    • require once:与include once相同
    基本写法:
    	include '文件名';
    	include ('文件名');//文件名字要能被系统找到(路径问题
    
    ##向上包含
    
    
    //此文件名字为file1.php
    <?php
    	//被包含的文件
    	$x = 10;
    	define('gz',103);
    ?>
    
    //此文件名为file2.php
    <?php
        include 'file1.php'; //调用与file2.php在同一路径下的file1.php
    	echo $x , gz;
    ?>
    
    //这里运行file2.php会有结果
    
    
    ##向下包含
    
    
    //此文件名字为file3.php
    <?php
    	//被包含的文件
    	$x = 10;
    	define('gz',103);
    	include_once 'file4.php';
    ?>
    
    //此文件名为file4.php
    <table>
        <tr>
            <td><?php echo $x;?></td>
            <td><?php echo gz;?></td>
       	</tr>
    </table>
    
    //这里运行file3.php会有结果。
    

    感觉用法不是很难懂,不作过多解释。

    三、文件加载原理

    1. 在文件加载(include/require)的时候,系统会自动将被包含文件中的代码相当于嵌入到当前文件中
    2. 加载位置在文件的调用位置。(inluce/require的位置
    3. PHP中被包含的文件是单独进行编译的。

    PHP文件在编译过程中如果有语法错误,就不会执行。

    对于第三点的解释:但是被包含文件中有错的时候,系统会在执行到include所在语句的时候才会报错。(这个时候会执行include之前的语句。

    四、include与require的区别

    4.1include与include_once的区别

    ​ include:系统碰到一次就会执行一次;同一文件加载几次就执行几次

    ​ include_once:不管加载几次,只执行一次

    4.2include与require的区别

    ​ 本质上都是包含文件,唯一区别在于包含不到文件的时候,报错的形式不一样

    include 包含不存在的文件的时候,虽然会报错,还会执行下面的语句。

    require 使用时如果出错,后面的代码不会执行

    五、文件加载路径

    ​ 文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。

    5.1 绝对路径

    • 从磁盘的根目录开始(本地绝对路径) Windows:盘符:C/路径/PHP文件、Linux:/路径/PHP文件
    • 从网站根目录开始(网站角度路径) / : 相对于网站主机名字对应的路径。 eg:localhost/index.php --> E:/server/apache/htdocs/index.php

    5.2相对路径

    ​ 从当前文件夹所在目录开始的路径

    ./:表示当前文件夹、../:上级目录(当前文件夹的上一次文件夹)

    <?php
    	//简单相对路径加载
    	include'file.php';
    	include'./file.php';
    	//复杂相对路径加载
    	include'../htdocs/file.php';
    
    	//绝对路径
    	include'E:/.../.../.../file.php';
    

    5.3绝对路径与相对路径的区别

    1. 绝对路径的效率相对较低,但是绝对安全 (路径不会出错
    2. 相对路径的效率相对较高,但是容易出错 (相对路径可能会出错

    六、文件嵌套包含

    ​ 一个文件包含另外一个文件,这个被包含的文件又包含另一个文件。

    ​ 嵌套包含的时候很容易出现相对路径出错的问题:相对路径会因为文件的包含而改变。

    ​ 原因:windows下面的每一个文件夹都有.和//的文件

    个人认为:比较不难搞的用相对路径,如果比较复杂的就用绝对路径。(建议熟读./../的含义。

    举例: (其中./表示的当前文件夹是会变的。

    文件包含嵌套出错.PNG
  • 相关阅读:
    spring配置文件中util:properties和context:property-placeholder
    为啥Spring和Spring MVC包扫描要分开?
    spring和springmvc父子容器关系
    springmvc请求参数获取的几种方法
    请求转发(Forward)和重定向(Redirect)的区别
    如何设计一个秒杀系统
    Maven使用之packing篇
    ECharts基本设置
    @RequestParam详解以及加与不加的区别
    从网页提取的关键字
  • 原文地址:https://www.cnblogs.com/seintf/p/14160809.html
Copyright © 2020-2023  润新知