美文网首页PHP
PHP 文件加载的四种方式

PHP 文件加载的四种方式

作者: 887d1fc86fe6 | 来源:发表于2020-04-26 11:05 被阅读0次
  • 四种方式如下所示:
    • 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();
?>

相关文章

网友评论

    本文标题:PHP 文件加载的四种方式

    本文链接:https://www.haomeiwen.com/subject/arcdwhtx.html