PHP代码调试和测试

php没有多线程、同步等复杂的概念,大多由函数和类组成,数据类型和语法比较简单,利用其丰富的内置函数便可实现大部分功能测试,可是,有时也须要比较比较专业的调试方法及工具迅速捕捉到异常。php

(1)debug函数 在实际应用中,除了应用echo、die、var_dump输出当前变量值外,还须要输出一些额外的信息,如当前代码所在的函数名称。linux

先来看三个有关调试的函数: func_num_args() 这个函数返回的是当前函数的参数数量 返回的是数字 **func_get_arg()**函数返回的是指定位置的参数的值 **func_get_args()**这个函数返回的是包含当前函数全部参数的一个数组 **PHP_EOL PHP中能够用PHP_EOL来替代换行,以提升代码的源代码级可移植性 相似经常使用的还有 DIRECTORY_SEPARATOR 能够用函数get_defined_constants()来获取全部PHP常量web

<?php
    echo PHP_EOL;
    //windows平台至关于    echo "\r\n";
    //unix\linux平台至关于    echo "\n";
    //mac平台至关于    echo "\r";
<?php
    //get_defined_constants()返回全部常量数组
    print_r(get_defined_constants());

###debug函数windows

public function debug(){
        $numargs = func_num_args(); // 参数个数
        $arg_list = func_get_arg(); // 获取参数
        for($i = 0; $i < $numargs; $i ++)
        {
            echo "第${$i}个变量的值为:",$arg_list[$i],PHP_EOL;
        }

        echo '当前所处的文件名为:'.__FILE__,PHP_EOL;
    }

###引用上边的调试函数数组

function mytest($a, $b){
 $sum = $a + $b;
 debug($a, $b);
 return $sum;
}

$ret = mytest(10,5);
echo $ret;

##断点调试与变量跟踪工具Xdebug多线程

webGrind facebook开源的XHProf性能分析函数