php include()函数测试分析

include_path 下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。例如 include_path 是 . ,当前工作目录是 /www/ ,脚本中要 include 一个 include/a.php教程  并且在该文件中有一句 include "b.php" ,则寻找 b.php  的顺序先是 /www/ ,然后是 /www/include/ 。如果文件名以 ./  或者 ../  开始,则只在当前工作目录相对的 include_path 下寻找。

所以如下所示的文件结构

----a.php

----include/b.php

----include/c.php

 其中a.php

<?php

include 'include/b.php';

?>

-----------------------

b.php

<?php

include 'c.php';

include 'include/c.php';

?>

--------------------------

c.php

<?php

echo 'c.php';

?>

--------------------------

都能正确运行,说明b.php中两种不同包含路径都是可行的,根据include寻找包含文件的方式都能找到c.php。

但是最好的方式还是使用绝对路径,如果使用了绝对路径,php内核就直接通过路径去载入文件而不用去include path逐个搜索文件,增加了代码执行效率

<?php

define('root_path',dirname(__file__));

include root_path.'/c.php';

?>

结论:

显然include 后面路径的格式和php的include path 对程序性能都是存在影响的,include 性能从慢到快的排序是

include 'a.php' < include './a.php' < include '/fullpath/a.php

在代码中,使用绝对路径include文件是最好的选择,因为这样php内核就直接通过路径去载入文件而不用去include path逐个搜索文件。

所以我们最好在项目的公用文件中定义一个项目根目录绝对路径的常量,然后所有的include的路径前都带上这个常量,这样项目中所有的include使用的都是绝对路径,既提高程序性能,也减少了相对路径带来的烦恼。

参考代码(来自emlog):

define('emlog_root', dirname(__file__));

include emlog_root . '/config.php';

如果你的项目中已经大量使用include 'test.php'  这样格式的相对路径且不好大量修改,那么请尽量减少php include path中的路径以提高一定的include性能。因为include path中的路径越少,php搜索文件的时间也越少。

时间: 2024-10-01 01:16:30

php include()函数测试分析的相关文章

javascript中eval函数用法分析

  javascript中eval函数用法分析         这篇文章主要介绍了javascript中eval函数用法,实例分析了javascript中eval函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例分析了javascript中eval函数用法.分享给大家供大家参考.具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数.否则会将字符串当成js代码进行编译,如果编译失败则抛出语法错误(SyntaxError)异常.如果编译成功则开始执行这

c语言-C语言,time.h中得mktime函数测试出一些问题,当tm_hour = 0时,转化成前一天了

问题描述 C语言,time.h中得mktime函数测试出一些问题,当tm_hour = 0时,转化成前一天了 mktime函数,当tm结构体,当tm_hour为零的时候,会将时间转化到前一天, tm_hour 不为零的时候,就没有问题.小菜一枚,help~没有币~~抱歉~ #include #include void printTime(struct tm * time){ printf("%d-%d-%d %d:%d:%dn",time->tm_year+1900,time-&

使用IBM Rational Quality Manager实现测试分析和报表

简介:本文深入地介绍了利用 IBM Rational Quality Manager (RQM) 进行测试分析和生成报表,并且涵盖了测试经理可能提出的常见问题.您还可以了解到如何使用 RQM 辅助您对测试工程进行定性和定量分析,并提供分析数据. IBM Rational Quality Manager 是为完整的软件开发生命周期提供集成的测试计划和测试资产的协作的,基于 Web 的质量管理软件.Rational Quality Manager 基于 Jazz 平台,并且可以被任何规模的测试团队使

php实现简单的语法高亮函数实例分析

  这篇文章主要介绍了php实现简单的语法高亮函数,实例分析了php通过正则表达式实现语法高亮的相关技巧,需要的朋友可以参考下 本文实例讲述了php实现简单的语法高亮函数.分享给大家供大家参考.具体分析如下: 这是一个php实现的简单语法高亮显示的函数,注意:这个函数设计的比较简单,可能对某些语法不能高亮显示,你可以自己扩充该函数的功能 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

php定义一个参数带有默认值的函数实例分析

 这篇文章主要介绍了php定义一个参数带有默认值的函数,实例分析了php参数带有默认值的函数使用技巧,需要的朋友可以参考下     本文实例分析了php定义一个参数带有默认值的函数用法.分享给大家供大家参考.具体分析如下: php的函数参数可以指定默认值,指定默认值后,调用时如果不给该参数赋值,则该参数就使用默认值 ? 1 2 3 4 5 6 7 8 9 10 11 <?php function capitalize( $str, $each=TRUE ) { $str = strtolower

php数组添加与删除单元的常用函数实例分析

 这篇文章主要介绍了php数组添加与删除单元的常用函数,实例分析了array_push.array_pop.array_shift及array_unshift等函数的使用技巧,需要的朋友可以参考下     本文实例分析了php数组添加与删除单元的常用函数.分享给大家供大家参考.具体分析如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php header("Content-type:text/html;char

JavaScript自定义等待wait函数实例分析

 这篇文章主要介绍了JavaScript自定义等待wait函数,实例分析了自定义等待函数的实现与使用技巧,需要的朋友可以参考下     本文实例讲述了JavaScript自定义等待wait函数用法.分享给大家供大家参考.具体分析如下: 下面是一个js自定义的wait函数,可以暂停程序的执行 ? 1 2 3 4 5 6 7 8 function sleep(delay) { var start = new Date().getTime(); while (new Date().getTime()

c++-solvePnPRansac函数结果分析

问题描述 solvePnPRansac函数结果分析 已知双目测距得到的特征点三维坐标,选取其中一个特定的点作为物体坐标的原点,例如得到了人脸中一些特定点的三维坐标,选取鼻尖为坐标原点得到了特征点在新坐标系下的坐标,再根据特征点在图像中的坐标和内参数矩阵,使用solvePnPRansac得到新坐标和摄像机坐标系间的旋转向量和平移向量,旋转向量经罗德里格斯变换后得到了旋转矩阵,平移向量严格来说应该为新坐标系中的原点(例如鼻尖)在摄像机坐标系下的坐标,但结果显示在x方向上有较大的误差,请问这是怎么回事

sql-JSP连接数据库问题。为什么用mian函数测试驱动可以成功 ,而用jsp调用该函数就连接不了呢

问题描述 JSP连接数据库问题.为什么用mian函数测试驱动可以成功 ,而用jsp调用该函数就连接不了呢 为什么用mian函数测试驱动可以成功 ,而用jsp调用该连接SQL erver2008数据库的函数就连接不了呢 解决方案 jsp怎么调用,连接数据库代码应该在severlet中,检查ip地址和用户名密码对不对 解决方案二: 估计是JSP里没连接数据库的代码.JSP只是类似于HTML文件 解决方案三: 理论上不应该,代码贴一下 解决方案四: 重新启动一次看看,?测试成功应该就差不多了 解决方案