首页 > php教程 > php手册 > 正文

Xdebug文档(五) 代码覆盖分析

php中文网
发布: 2016-06-17 08:21:51
原创
1151人浏览过

代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。

相关设置

xdebug.coverage_enable

类型: boolean, 默认值: 1, 始于 

Xdebug >= 2.2

如果设为0, Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。

相关函数

boolean xdebug_code_coverage_started()

返回布尔值查看代码覆盖分析是否已经开始。

Example:

<?<span style="color: #000000;">php
    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_code_coverage_started());

    xdebug_start_code_coverage();

    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_code_coverage_started());
</span>?>  
登录后复制

 

Returns:

bool(false)
登录后复制
bool(true)
登录后复制
 
登录后复制

 

array xdebug_get_code_coverage()

返回一结构包含脚本哪一行(包括引用文件)在执行。以下展示代码覆盖指定某一文件示例:

Example:

<?<span style="color: #000000;">php
    xdebug_start_code_coverage();

    </span><span style="color: #0000ff;">function</span> a(<span style="color: #800080;">$a</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$a</span> * 2.5<span style="color: #000000;">;
    }

    </span><span style="color: #0000ff;">function</span> b(<span style="color: #800080;">$count</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">for</span> (<span style="color: #800080;">$i</span> = 0; <span style="color: #800080;">$i</span> < <span style="color: #800080;">$count</span>; <span style="color: #800080;">$i</span>++<span style="color: #000000;">) {
            a(</span><span style="color: #800080;">$i</span> + 0.17<span style="color: #000000;">);
        }
    }

    b(</span>6<span style="color: #000000;">);
    b(</span>10<span style="color: #000000;">);

    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_get_code_coverage());
</span>?>  
登录后复制

 

Returns:

array

  '/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php' =>

    array

      5 => int 1

      6 => int 1

      7 => int 1

      9 => int 1

      10 => int 1

      11 => int 1

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊51
查看详情 代码小浣熊

      12 => int 1

      13 => int 1

      15 => int 1

      16 => int 1

      18 => int 1

void xdebug_start_code_coverage( [int options] )

开始代码覆盖分析

该函数开始收集代码覆盖信息。该信息由二维数组形成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。

每行返回的值:

  • 1: 该行已执行过
  • -1:      该行未被执行
  • -2:      该行没有可执行的代码

 -1 值只有在 XDEBUG_CC_UNUSED  开启后才会返回,而 -2 值只有XDEBUG_CC_UNUSED 和 XDEBUG_CC_DEAD_CODE 同时开启才会返回。

函数有两个以枚举值的选项:

XDEBUG_CC_UNUSED

开启检测代码并说明哪行为可执行代码。无此项则返回的数组只包含实际执行过的行号。

XDEBUG_CC_DEAD_CODE

开始额外的分析说明哪些代码能被执行。

如果开启这些选项执行大幅减慢代码覆盖分析速度。

以下示例展示如何使用选项:

Example:

<?<span style="color: #000000;">php
xdebug_start_code_coverage( XDEBUG_CC_UNUSED </span>|<span style="color: #000000;"> XDEBUG_CC_DEAD_CODE );
</span>?>
登录后复制

 

void xdebug_stop_code_coverage( [int cleanup=true] )

停止代码覆盖分析

该函数停止收集信息,该信息在内存中会被清除。如果你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用 xdebug_start_code_coverage() 恢复信息收集。

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号