加强版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了,而且页面也比较直观,一目也然。