php的文件引用
最近研究公司代码时发现了set_include_path(dirname(__FILE__));这样一行代码,在网上查了些资料,才把这个方法的作用弄清楚。
首先,dirname(__FILE__)这个方法返回当前代码所在文件的路径。
而set_include_path这个函数呢,就相当于windows的环境变量。windows可以通过环境变量的路径,来从指定的路径下寻找需要的文件。
当我们的项目需要引入多个类文件、函数文件时,特别是当所引用的文件路径比较深的时候,我们的代码就会变成下面这样:
<?php
include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test1.php");
include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test2.php");
include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test3.php");
include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test4.php");
include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test5.php");
?>
是不是感觉写出来很多冗余的代码了。
如果我们设置了set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/");那么我们的代码前面的路径就可以省略了。
<?php
set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/");
include("test1.php");
include("test2.php");
include("test3.php");
require("test4.php");
require("test5.php");
?>
set_include_path函数还可以设置多个路径变量,在linux下用:分隔,在windows下用;分隔。比如:
<?php
define('A','xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/');
define('B','yyy/yyy/yyy/yyy/yyy/yyy/yyy/yyy/');
define('C','zzz/zzz/zzz/zzz/zzz/zzz/zzz/zzz/'); set_include_path(A.PATH_SEPARATOR.B.PATH_SEPARATOR.C); include("test1.php");
include("test2.php");
include("test3.php");
require("test4.php");
require("test5.php"); ?>
最后,还有两个php预定义变量
PATH_SEPARATOR:路径分隔符,include多个路径使用,在win下,当你要include多个路径的话,你要用”;”隔开,但在linux下就使用”:”隔开的。
还有DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’ windows上是’\’。
php的文件引用的更多相关文章
- 未能找到元数据文件“引用的DLL的路径”
使用VS的时候 偶尔会出现错误 [未能找到元数据文件“引用的DLL的路径”] 但是实际上项目中这些DLL都是做了引用的,甚至你前一天打开还是好好的,睡一觉起来 不知道什么原因 就酱紫了 原因:不详 ...
- Django中静态文件引用优化
静态文件引用优化 在html文件中是用django的静态文件路径时,一般会这么写: <script type="text/javascript" src="/sta ...
- [DB][mybatis]MyBatis mapper文件引用变量#{}与${}差异
MyBatis mapper文件引用变量#{}与${}差异 默认,使用#{}语法,MyBatis会产生PreparedStatement中.而且安全的设置PreparedStatement參数,这个过 ...
- ArcCore重构-头文件引用问题的初步解决
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5 基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息: ...
- Django-2- 模板路径查找,模板变量,模板过滤器,静态文件引用
模板路径查找 路径配置 2. templates模板查找有两种方式 2.1 - 在APP目录下创建templates文件夹,在文件夹下创建模板 2.2 - 在项目根目录下创建templates文件夹, ...
- Django模板变量及静态文件引用
一.模板变量传递 1.视图向模板传递变量 视图中的列表,数组,字典,函数均可以传递给模板 在视图中定义变量通过render(content{‘name’ : value})传递给模板 模板通过{{ ...
- 4 html文件引用问题
通常在写html文件的时候会遇到需要引入样式文件,或者图片等问题,对于有一定开发经验的人来说,这些都不是问题,做为初学者,还是有必要理解html文件引用的“思路”的 当html文件和要引用的文件在同一 ...
- Google Colab Notebook 的外部文件引用配置
Google Colab Notebook 的外部文件引用配置 Reference: How to upload the file and read Google Colab 先装工具:google- ...
- 动态为页面添加CSS样式文件引用
动态为页面添加CSS样式文件引用: if (document.createStyleSheet) { //IE document.createStyleSheet("./Themes/Def ...
- 解决HTML加载时,外部js文件引用较多,影响页面打开速度问题
解决HTML加载时,外部js文件引用较多,影响页面打开速度问题 通常HTML文件在浏览器中加载时,浏览器都会按照<script>元素在页面中出现的先后顺序,对它们依次加载,一旦加载的j ...
随机推荐
- CSS媒体查询适配范例
/*orientation:portrait纵向*/ /*orientation:landscape横向*/ /*iPhone 4*/ @media only screen and (min-devi ...
- DBProxy 入门到精通系列(二):DBProxy快速入门教程
这里主要用来了解有关DBProxy方面的部署及基本的配置,以及模拟架构 1 DBProxy方面的安装部署 1)基础环境的部署 # .x86_64 Percona-Server-client-.x86_ ...
- javascript 类型的判断
在平常写js代码,类型判断必不可少,那么我们常见有哪几种?看到了标题,先不看你会想到那些方法 ,常用呢些呢?那么今天我自己总结一些判断类型的判断,如有错,万望告知! 1:typeof 常用这种方法不错 ...
- AP模块发票过账标记为否检查方法
根据发票编号,查找发票 : 发票过账标记,始终为否,创建会计科目提示如下:
- Cassandra存储time series类型数据时的内部数据结构?
因为我一直想用Cassandra来存储我们的数字电表中的数据,按照之前的文章(getting-started-time-series-data-modeling)的介绍,Cassandra真的 ...
- String 类的实现(1)浅拷贝存在的问题
浅拷贝 : 也称位拷贝 , 编译器只是直接将指针的值拷贝过来, 结果多个对象共用 同 一块内 存, 当一个对象将这块内 存释放掉之后, 另 一些对象不知道该块空间 已经还给了 系 统, 以 为还有效, ...
- XAF-通知模块概述 web+win
通知模块概述 1.支持 WinForms和ASP.NET程序. 2.支持调度模块或自定义业务对象. 3.功能:在指定的时间,弹出一个窗口,用户可以查看提醒.也可以取消或推迟. 如需演示项目的源码,可以 ...
- 老李分享:《Linux Shell脚本攻略》 要点(二)
老李分享:<Linux Shell脚本攻略> 要点(二) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课 ...
- 3.Maven坐标和依赖
1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...
- JavaScript定时器分析
一.事件循环 JavaScript是单线程,同一个时间只能做一件事情,所以执行任务需要排队.如果前一个耗时很长,那么下一个只能等待. 1)两种任务 为了更好的处理任务,JavaScript语言的设计者 ...