文件加载的含义
含义:将一个(别的)文件包含到当前文件中,成为当前文件运行过程中的一部分。通常,一些公共的代码,在多个页面都需要用到的时候,会做成一个独立的文件。然后在不同的页面需要用到的时候,直接载入进来就可以了。
语法:
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 ‘文件名’:
- 此时,会按如下顺序去寻找该文件:
- 先在
php.ini
中include_path
项设定的目录中寻找该文件; - 如果上一步没有找到,就在当前工作目录(由getcwd()获取)下寻找该文件;
- 如果上一步没有找到,就在当前载入语句的文件所在目录(由__DIR__获取)下寻找;
- 如果上一步还是没有找到,就报错了。
四种方式的区别
- include:每次都载入文件(可能会重复载入),如果载入失败,在报错后继续执行后续语句;
- include_once:只载入一次(不会重复载入),如果载入失败,在报错后继续执行后续语句;
- require:每次都载入文件(可能会重复载入),如果载入失败,在报错后终止程序;
- require_once:只载入一次(不会重复载入),如果载入失败,在报错后终止程序。
一般来说,如果被载入的文件内容,是后续代码运行的必备前提,则应该使用require载入。
如果被载入的文件内容,只需要(或只允许)出现一次,则应该使用”xxxx_once”载入。