PHP 文件加载的四种方式
2020-04-26 本文已影响0人
887d1fc86fe6
- 四种方式如下所示:
- incude "要加载的文件路径";
- include_once "要加载的文件路径";
- require "要加载的文件路径";
- require_once "要加载的文件路径";
-
四种方式的区别
- inchude:每次都载入文件(可能会重复载入),如果载入失败,在报错后继续执行后续语句;
- include_once:只载入一次(不会重复载入),如果载入失败,在报错后继续执行后续语句;
- require:每次都载入文件(可能会重复载入),如果载入失败,在报错后终止程序;
- require_once: 只载入一次(不会重复载入),如果载入失败,在报错后终止程序;
一般来说, 如果被载入的文件内容,是后续代码运行的必备前提,则应该使用require载入。
如果被载入的文件内容,只需要(或只允许)出现一次,则应该使用 'xxxx once" 载入。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
$file = __DIR__ . '/lib/nav.html';
// 避免重复导入,只会生效一次
// include_once 载入失败可以继续运行下面后续代码。
include_once $file;
include_once $file;
// 避免重复导入,只会生效一次
// require_once 载入失败则报错后终止程序。
require_once $file;
require_once $file;
?>
</body>
</html>
- 上面路径 “要加载的文件”,是一个文件路径,可以是相对路径,也可以是绝对(物理)路径,或直接文件名:
-
相对路径:
'./文件名';
'./dir/文件名';
'./dir/dir/文件名';
'../../dir/文件名';
...... -
绝对(物理)路径:
'c:/itcast/class/php66/day4/文件名'; // window系统
'/path1/path2/文件名'; // inux、unix 等系统
......
-
- 获取物理路径(绝对路径)的方式:
__DIR__:表示当前文件所在路径,由它可以构建出绝对路径;
getcwd():表示当前正访问的网页路径,由它也可以构建出绝对路径;
- 非相对非绝对路径(其实就是没有给出路径,只给出文件名) :不推荐!
- 形式为: include 文件名;
- 此时,会按如下顺序去寻找该文件:
1、先在 php .ini 中 include_path 项设定的目录中寻找该文件;
2、如果上一步没有找到,就在当前工作目录(由 getcwd() 获取)下寻找该文件;
3、如果上一步没有找到,就在当前载入语句的文件所在目录(由 __DIR__ 获取)下寻找;
4、如果上一步还是没有找到,就报错了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
echo '__DIR__ 当前路径为:', __DIR__;
$file = __DIR__ . '/lib/nav.html';
echo '<br>__DIR__ 想要载入路径为:', $file;
include $file; // 这样也是能生效的
echo '<hr>';
echo 'getcwd() 当前路径为:', getcwd();
$file1 = getcwd() . '/lib/nav.html';
echo '<br>getcwd() 想要载入路径为:', $file1;
include $file1; // 这样也是能生效的
echo '<hr>';
echo '__DIR__ 与 getcwd() 区别:';
include 'lib/page.php';
?>
</body>
</html>
- page.php:
<?php
echo '<br>__DIR__ 获取当前文件路径:';
echo '<br>' . __DIR__;
echo '<br>getcwd() 获取当前浏览网页的路径,也就是你当前浏览访问的页面在的路径,而不是当前文件的路径:';
echo '<br>' . getcwd();
?>
