一.文件载入

所谓的文件的载入,就是指将需要的目标文件的代码载入到当前的位置上,从某种意义上来说,文件载入也是一种流程控制!

文件载入的主要目的是体现网站的分层设计,因为不同的页面有很多相同的区域(相同的代码)这些相同的代码区域只需要书写一次,在需要的时候将该文件载入进来即可!以代码的重用!

PHP提供了四种文件载入的语句:

  include,include_once,require,require_once

   它们主要的功能都是实现文件的载入,只是有些语法上的差别!

include

基本的语法形式:

include ‘目标文件地址’;

执行的结果:

几点注意:

1,  载入的文件无论是什么类型,我们需要的只是目标文件内的代码,而与文件的后缀名无关!

2,  载入的目标文件内,无论是html代码还是php代码,都可以正常的执行!

载入过程(原理)

载入的过程发生在代码的运行阶段,而不是代码的预编译阶段

1,  执行到include的时候,先退出PHP模式,进入到了HTML模式

2,载入目标文件的源代码,相当于将目标文件里面的所有的内容复制到目标位置

3,将载入的代码从源代码开始预编译并执行!

4,再次进入到PHP模式!

二.载入的路径问题

可以分成:相对路径,默认路径和绝对路径!

相对路径

相对于当前脚本文件所在的位置的路径!典型的相对路径有:

./      :当前执行脚本所在的当前目录

../     :当前执行脚本所在的上级目录

(补充:其实任何目录下都有两个隐藏的目录,一个就是.一个就是..)

/        :在真实的项目中一般代表网站的根目录

默认路径

注意:

默认路径是可以配置的,而不仅仅代表当前路径!

在早期的项目中,有一个比较简单的做法,把所有可能被载入的文件全部放到一个统一的目录下,然后将该目录配置成默认路径,而在进行文件载入的时候使用默认路径即可!

然后在php.ini中配置默认路径:

直接修改配置文件,对所有的项目都生效了,所以还有一个函数可以使用:set_include_path作用就是设置当前脚本的默认的路径!

set_include_path(‘当前脚本的默认路径’);

绝对路径

当出现多重载入的时候,根据相对路径很容易发生混淆或者错误,所以,在真实的项目中,一般都采用绝对路径进行载入!

因为在载入一个文件的时候,该文件的绝对位置是不可能发生改变的,而相对路径是取决于当前的代码在哪个文件内执行,会发生改变!

于是,又遇到了另外一个问题,当我们进行项目移植的时候,绝对路径的地址很有可能会发生改变,所以,在真实的项目中,应该先定义目录常量!

不同的载入语句的区别

require与include

同样适用于require_once和include_once

都是在进行文件的载入,只是对目标文件的依赖程度不一样,所产生的错误级别也不一样:

错误的级别:

error:致命错误,比如出现语法错误

warning:警告错误

Notice:错误级别最低

require:必须载入,如果目标文件不存在,则报告一个error级别的错误,后续代码就停止运行!

include:载入,如果目标文件不存在,则报告一个warning级别的错误,但是后续代码继续执行!

include与include_once

同样适用于require与require_once

这里的once是一次的意思!

就是在载入之前先进行一次判断,判断当前载入的文件前面是否已经载入过,如果已经载入过,就不再载入了,如果没有载入过,则继续载入!从而保证某个文件在一个文档中不会重复载入!

有时候,只载入一次的判断是非常有必要的,比如,函数不能重复定义!

PHP文件载入和载入路径的更多相关文章

  1. 插件化开发—动态载入技术载入已安装和未安装的apk

    首先引入一个概念,动态载入技术是什么?为什么要引入动态载入?它有什么优点呢?首先要明确这几个问题.我们先从 应用程序入手,大家都知道在Android App中.一个应用程序dex文件的方法数最大不能超 ...

  2. Oracle RMAN 恢复控制文件到指定的路径

    Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...

  3. C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

    1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...

  4. find命令查找文件,并排除相应路径

    find / -path "/exclude/" -prune -o -name "lsof" -print 查找根目录下文件,并排除/exclude路径

  5. java 压缩文件 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件

    /** * 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件 * * @param files * 文件数组 * @param strZipName * 压缩文件路径及文件名 * @thr ...

  6. 编译过程中,termcap.h 文件找不到路径 licli.a终于生成

    编译过程中,termcap.h      文件找不到路径   查看是linux  源码下找不到termcap.h文件   安装了所有关于*cap*的源码包也不起作用     今天终于解决了这个问题,搜 ...

  7. Java基础之访问文件与目录——测试文件或目录的路径(TryPath)

    控制台程序,测试文件或目录的路径. import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.FileSy ...

  8. mws文件中的tab文件改为相对路径

    用mapinfo将现有的多个图层(tab)文件保存成一个mws工作空间后,将此mws文件发到另一台电脑上后,打开mws,提示无法打开各个tab文件,文件不存在,显示的路径是当时原电脑添加时的绝对路径. ...

  9. NetBeans 7.2 or 8.0 编辑文件时不显示文件路径。

    NetBeans 7.2 or 8.0 编辑文件时不显示文件路径. 仅仅实用鼠标停在标签上一下,才干够看到.非常不方便. 怎样解: http://plugins.netbeans.org/plugin ...

随机推荐

  1. tornado nginx 同源(Access-Control-Allow-Origin)错误处理记录

    如果以下两个步骤操作完还是没有解决问题,可能是因为程序出了别的错误,因为后来的调试中不论出什么问题它都是会返回同源错误..呵呵哒 1.在nginx.conf里配置server,在location里添加 ...

  2. Java面试总结-基础篇2

    1. mvn的dependency-management dependency-management是声明依赖,不实际引入,主要用于在父依赖中统一各依赖的版本,否则,各个子模块在引用同一依赖时,难免会 ...

  3. jeecms 修改后台访问路径

       版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_30553235/article/details/74971414 我使用的是jeecms ...

  4. APT甲级——A1069 The Black Hole of Numbers

    For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in ...

  5. PAT甲级——A1047 Student List for Course

    Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course ...

  6. Trees in a Wood UVA - 10214 欧拉函数模板

    太坑惹,,,没用longlong各种WA #include <iostream> #include <string.h> #include <cstdio> #in ...

  7. spring源码学习之springMVC(一)

    个人感觉<Spring技术内幕:深入解析Spring架构与设计原理(第2版)>这本书对spring的解读要优于<Spring源码深度解析(第2版)>这本书的,后者感觉就是再陈述 ...

  8. JAVA面试常见问题之锁机制篇

    1.说说线程安全问题,什么是线程安全,如何保证线程安全 线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用.不 ...

  9. Dom直接选择器

    Dom直接选择器 <!DOCTYPE html> <!--Dom间接选择器--> <html lang="en"> <head> & ...

  10. IO流4 --- IO流体系 --- 技术搬运工(尚硅谷)