浏览器友好的变量输出
程序员文章站
2022-05-17 23:54:07
PHP打印变量一般有echo、print_r、var_dump等方式,但是这些方式打印的变量在浏览器上显示的效果都不是很友好,所以一些PHP框架都会带有自己的打印变量的方法。这里我把ThinkPHP框架打印变量的dump方法提取出来,自己平时测试代码打印变量可以用该方法,这样在浏览器上的显示效果更加 ......
php打印变量一般有echo、print_r、var_dump等方式,但是这些方式打印的变量在浏览器上显示的效果都不是很友好,所以一些php框架都会带有自己的打印变量的方法。这里我把thinkphp框架打印变量的dump方法提取出来,自己平时测试代码打印变量可以用该方法,这样在浏览器上的显示效果更加友好。
/** * 浏览器友好的变量输出 * @access public * @param mixed $var 变量 * @param boolean $echo 是否输出(默认为 true,为 false 则返回输出字符串) * @param string|null $label 标签(默认为空) * @param integer $flags htmlspecialchars 的标志 * @return null|string */ function dump($var, $echo = true, $label = null, $flags = ent_substitute) { $label = (null === $label) ? '' : rtrim($label) . ':'; ob_start(); var_dump($var); $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', ob_get_clean()); if (php_sapi == 'cli') { $output = php_eol . $label . $output . php_eol; } else { if (!extension_loaded('xdebug')) { $output = htmlspecialchars($output, $flags); } $output = '<pre>' . $label . $output . '</pre>'; } if ($echo) { echo($output); return; } return $output; } $arr = [ ['name' => 'itbsl', 'priority' => 23], ['name' => 'jack', 'priority' => 3], ['name' => 'rose', 'priority' => 12], ['name' => 'pick', 'priority' => 45], ['name' => 'binbin', 'priority' => 68], ['name' => 'didi', 'priority' => 56789], ['name' => 'abc', 'priority' => 0], ]; dump($arr);
输出结果的样式为:
array(7) { [0] => array(2) { ["name"] => string(5) "itbsl" ["priority"] => int(23) } [1] => array(2) { ["name"] => string(4) "jack" ["priority"] => int(3) } [2] => array(2) { ["name"] => string(4) "rose" ["priority"] => int(12) } [3] => array(2) { ["name"] => string(4) "pick" ["priority"] => int(45) } [4] => array(2) { ["name"] => string(6) "binbin" ["priority"] => int(68) } [5] => array(2) { ["name"] => string(4) "didi" ["priority"] => int(56789) } [6] => array(2) { ["name"] => string(3) "abc" ["priority"] => int(0) } }