> php教程 > php手册 > Xdebug文档(五) 代码覆盖分析,xdebug文档

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

WBOY
풀어 주다: 2016-07-06 14:25:33
원래의
979명이 탐색했습니다.

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

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

相关设置

xdebug.coverage_enable

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

Xdebug >= 2.2

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

相关函数

boolean xdebug_code_coverage_started()

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

Example:

<?<span>php
    </span><span>var_dump</span><span>(xdebug_code_coverage_started());

    xdebug_start_code_coverage();

    </span><span>var_dump</span><span>(xdebug_code_coverage_started());
</span>?>  
로그인 후 복사

Returns:

bool(false)
로그인 후 복사
bool(true)
로그인 후 복사
 
로그인 후 복사

array xdebug_get_code_coverage()

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

Example:

<?<span>php
    xdebug_start_code_coverage();

    </span><span>function</span> a(<span>$a</span><span>) {
        </span><span>echo</span> <span>$a</span> * 2.5<span>;
    }

    </span><span>function</span> b(<span>$count</span><span>) {
        </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$count</span>; <span>$i</span>++<span>) {
            a(</span><span>$i</span> + 0.17<span>);
        }
    }

    b(</span>6<span>);
    b(</span>10<span>);

    </span><span>var_dump</span><span>(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

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>php
xdebug_start_code_coverage( XDEBUG_CC_UNUSED </span>|<span> XDEBUG_CC_DEAD_CODE );
</span>?>
로그인 후 복사

 

void xdebug_stop_code_coverage( [int cleanup=true] )

停止代码覆盖分析

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

 

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿