PHP之文件包含

文件包含

文件包含

定义:文件包含,就是在一个要运行的PHP脚本中,去将另外一个PHP脚本中的代码拿过来,并且可以使用其被包含的文件里的内容,或者说将自己的内容能够在另外一个被包含的文件中使用

文件包含语法 -> PHP提供了4中包含文件的方法:

  • include '文件所在路径及文件名'; / include('文件所在路径及文件名');
  • include_once '文件所在路径及文件名'; / include_once('文件所在路径及文件名');
  • require '文件所在路径及文件名'; / require('文件所在路径及文件名');
  • require '文件所在路径及文件名'; / require_once('文件所在路径及文件名');
<?php
    include 'demo.php';     // 包含 demo.php 文件(当前目录下)
?>

文件包含的意义:

  • 向上包含:即先包含某个文件,目的为了使用某个文件中的代码或者数据(使用公共代码)
# dome.php 文件内容
<?php
    echo "https://www.betao.cn";
?>

# index.php 文件内容
<?php
    include 'demo.php'; // 包含上面的代码
?>

#  访问 index.php  输出: https://www.betao.cn 
  • 向下包含:即先写好代码,后包含文件,目的是为了在被包含文件中使用当前的数据(使用已产生数据)
# index.php 文件内容
<?php
    $url = "https://www.betao.cn";
    include 'demo.php'; // 包含上面的代码
?>

# dome.php 文件内容
<?php
    echo $url;
?>
#  访问 index.php  输出: https://www.betao.cn 

四种文件包含的区别:

  • includerequire的区别在于:

    • 如果包含的文件不存在的时候,include只是报警告错误,而不影响自身代码执行;
    • require会报致命错误,而且中断代码执行;
  • include include_once区别:

    • include 不论如何都会执行包含操作;
    • include_once 会记录是否已经包含过对应文件,对同一文件多次包含只操作一次(对于函数/类这种结构不允许重复的,是个好方法);

文件包含原理:文件包含本质就是将被包含文件的所有代码,在进行包含操作那一行全部引入并运行。但是文件包含语句是在运行时才会执行,因此不能先访问被包含文件中的内容,后包含文件

# demo.php 内容
<?php
function show(){
    echo "hello Taoy.";
}
?>

# index.php 内容
<?php
show();                    //错误:系统找不到函数
//引入
include_once 'demo.php';

show();                    //show:正确,先引入后使用
?>

路径问题

定义:路径问题,是指PHP在文件包含的时候,采用什么样的方式去寻找文件的问题。在系统中,路径通常分为两种:绝对路径和相对路径。

  • 绝对路劲:

    • 本地绝对路径 : 从盘符根目录到文件的路径

      • windows:D:/www/php/index.php
      • Linux: /var/www/html/index.php
    • 互联网绝对路径:URL -> https://www.betao.cn/index.php
  • 相对路劲

    • ./:表示同级目录(当前文件所属文件夹),每个文件夹下都有“.”文件,代表当前目录
    • ../:表示上级目录(当前文件所属文件夹的上级文件夹),每个文件夹下都有“..”文件,表示上级目录
    • 什么都没有:就是表示同级目录。区别./在于./会自动匹配任意目录下的.文件夹,而什么都没有则只会从自身文件所在目录开始(比./安全)

绝对路径和相对路径的区别

  • 相对路径效率高:相对路径只要按照当前文件位置偏移寻找即可
  • 相对路径不安全:相对路径一旦嵌套,./这个当前目录就会发生改变
  • 绝对路径安全:不会因为嵌套而出现路径变化
  • 绝对路径效率低:因为一定会要从根目录开始逐层寻找

资料参考:

https://blog.csdn.net/Auuuuuuuu/article/details/79702520

https://www.cnblogs.com/Renyi-Fan/p/10890220.html

本文链接:

https://www.betao.cn/archives/phpreview03.html
1 + 7 =
快来做第一个评论的人吧~