文件加载的含义

含义:将一个(别的)文件包含到当前文件中,成为当前文件运行过程中的一部分。通常,一些公共的代码,在多个页面都需要用到的时候,会做成一个独立的文件。然后在不同的页面需要用到的时候,直接载入进来就可以了。

语法:

include '要载入的文件路径'; //可以是相对路径,或本地物理路径。

说明:可以载入php文件,也可以载入html文件。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>文件头部</h1>
<?php 
    include './inc/nav.html';
 ?>
 <hr>

<?php 
    include './inc/page1.php';
    echo "<br>当前的页码为:" . $page;
 ?>

</body>
</html>

原理:载入一个文件的本质是:将被载入的文件“插入”到当前载入代码所在的位置。

文件加载的四种方式(重点)

四种方式如下所示:

  • include ‘要加载的文件’;
  • include_once ‘要加载的文件’;
  • require ‘要加载的文件’;
  • require_once ‘要加载的文件’;

其中,“要加载的文件”,是一个文件路径,可以是相对路径,也可以是物理路径,或直接文件名。

相对路径:

  • ‘./文件名’;
  • ‘./dir1/文件名’;
  • ‘./dir1/dir2/文件名’;
  • ‘../文件名’;
  • ‘../dir1/文件名’;
  • ‘../../dir1/dir2/文件名’;
  • etc.

物理路径:

  • ‘c:/itcast/class/php66/day4/文件名’; //window系统
  • ‘/path1/path2/文件名’; //linux、unix等系统
  • etc.

获取物理路径(绝对路径)的方式:

  • __DIR__:表示当前文件所在路径,由它可以构建出绝对路径;
  • getcwd():表示当前正访问的网页路径,由它也可以构建出绝对路径(cwd:current working directory)。

如果两者是在同一个PHP文件中使用则没有什么不同,但是如果是在两个PHP文件中使用(即一个PHP文件中又引入另一个PHP文件)则会不同。

非相对非绝对路径(其实就是没有给出路径,只给出文件名)——不推荐!

形式为: include ‘文件名’:

  1. 此时,会按如下顺序去寻找该文件:
  2. 先在php.iniinclude_path项设定的目录中寻找该文件;
  3. 如果上一步没有找到,就在当前工作目录(由getcwd()获取)下寻找该文件;
  4. 如果上一步没有找到,就在当前载入语句的文件所在目录(由__DIR__获取)下寻找;
  5. 如果上一步还是没有找到,就报错了。

四种方式的区别

  • include:每次都载入文件(可能会重复载入),如果载入失败,在报错后继续执行后续语句;
  • include_once:只载入一次(不会重复载入),如果载入失败,在报错后继续执行后续语句;
  • require:每次都载入文件(可能会重复载入),如果载入失败,在报错后终止程序;
  • require_once:只载入一次(不会重复载入),如果载入失败,在报错后终止程序。

一般来说,如果被载入的文件内容,是后续代码运行的必备前提,则应该使用require载入。

如果被载入的文件内容,只需要(或只允许)出现一次,则应该使用”xxxx_once”载入。