加强版print_r:print_x,可以一次性输出多个参数的函数,像var_dump但比它美观

在使用var_dump输出多个值的时候,不太美观,于是想用print_r,但print_r又不支持多个参数的输入,于是便有了print_r的加强版print_x的出现,弥补调试PHP信息时的不足。

func_num_args() 返回调用函数的传入参数个数,类型是整型
func_get_arg() 返回指定的参数值
func_get_args() 返回全部参数的值,类型是数组

 
//一次打印多个变量,方便调试
if(!function_exists('print_x')){
    function print_x(){
        header('Content-type:text/html;charset=utf-8');
        $ua      = strtolower($_SERVER['HTTP_USER_AGENT']);
        $b       = 0;
        if(stripos($ua, 'Gecko') !== false) $b = 1;
        $numargs = func_num_args();
        $arg_list = func_get_args();
 
        //得到传入的参数:
        $trace = debug_backtrace();
        $param = $trace[0]['args'];
        for ($i = 0; $i < $numargs; $i++) {
            $tips = is_array($param[$i]) ? '数组'.($i+1) : '$'.$param[$i];
            echo $b ? '<fieldset><legend>变量:'.($tips).',值为:</legend>' : '变量:$'.($tips).',值为:';
echo $b ? '<pre>' : '';
            empty($arg_list[$i]) ? var_dump($arg_list[$i]) : print_r($arg_list[$i]);
echo $b ? '</pre>' : '';
            echo $b ? '</fieldset>' : PHP_EOL;
        }
        exit;
    }
}
 

这样以后,要调试多个值的时候,就可以调用print_x了,而且页面也比较直观,一目也然。

300*300
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00475 秒