PHP的文件引入

一、路径

1、相对路径

相对路径指以.开头的路径; ./a/a.php (相对当前目录)

../common.inc.php (相对上级目录),

2、绝对路径

绝对路径是以 / 开头或者windows下的C:/类似的盘符开头的路径,全路径不用任何参考路径就可以唯一确定文件的最终地址。

//unix
/apache/wwwroot/site/a/a.php 
//windows
c:/wwwroot/site/a/a.php

例子

有一个 index.php 文件存放在 B 文件夹,B 的上级目录是 A,里面有个 a.php 文件,下级目录有个C 文件夹,里面有个c.php 文件

A-->
   | a.php
   | B-->
       | index.php
       | C-->
          | c.php

index.php 文件

a.php:../a.php
c.php:./C/c.php

3、需要掌握的

  • 魔术常量 __FILE__ __DIR__
  • 预定义常量 PHP_EOL DIRECTORY_SEPARATOR
  • pathinfo — 返回文件路径的信息
  • dirname()
  • basename()
  • parse_url()

文件包含语句

include

include "functions.php";

一般是放在流程控制的处理部分中使用,将文件内容引入。PHP程序在遇到include语句时,才将它读进来,这种方式可以把程序执行时的流程简单化,便于复用代码

include在引入不存在文件时产生一个警告且脚本还会继续执行,执行时需要引用的文件每次都要进行读取和评估,且有返回值

if (false) {
    include 'functions.php'; //functions.php文件没有引入
}

include 'function.php';
echo '上面的文件本不存在,但是我依然会执行';

$result = include "QueryPhone.php";
if(!empty($result)){
    echo '文件引入成功';
}else{
    echo '文件引入失败';
}

include_once

include_once  "functions.php";

加了 _once之后表示文件已引入的将不再引入。include_once引入文件的时候,如果碰到错误会给出提示并继续运行下边的代码

它的使用与include一样,只是只引入一次

require

require "functions.php";

一般是放在PHP文件的最前面将文件内容引入,PHP会将require的文件内容引入成功,然后才开始执行后面的代码

require在引入文件失败时会提示且脚本会被中断执行

require 'func.php';
echo '上面的文件引入失败,我就么有显示的机会';

require_once

require_once 'functions.php';

同require,不同的是只引入一次

综合实例

a.php

<?php 
echo 'hello jack';

引入

include 'a.php';
require 'a.php';

include_once 'a.php';
require_once 'a.php';

下面交换一下

include_once 'a.php';
require_once 'a.php';

include 'a.php';
require 'a.php';

注意

从理论上说,include和require后面加不加括号对执行的结果并没有什么区别,但是加上括号效率相对会较低,所以通常后面能不加括号就不要添加括号了