php在没用xdebug等调试工具的情况下如何让调试内容优雅地展现出来?--php数组格式化

  不知道各位猿猿们有没有碰到过类似的情况。装的PHP环境没有xdebug,而又经常用到数组。调试的时候也需要经常查看数组的结构和字段内容,用var_dump打印出来的数组内容总是杂乱无章。实在无法忍受,因而网上找了个格式化数组的方法,分享给大家。也再次感谢可爱的前辈们。

/**
* [dump_array 将数组内容格式化输出]
* @param array $vars [数组]
* @param string $label [分隔符]
* @param boolean $return [是否返回结果]
* @return [type] [description]
*/
function dump_array($vars, $label = '', $return = false) {
  if (ini_get('html_errors')) {
    $content = "<pre>\n";
    if ($label != '') {
      $content .= "<strong>{$label} :</strong>\n";
    }
    $content .= htmlspecialchars(print_r($vars, true));
    $content .= "\n</pre>\n";
  } else {
    $content = $label . " :\n" . print_r($vars, true);
  }
  if ($return) { return $content; }
  echo $content;
  return null;
}

用上它,打印出来的数组不再是一坨shit了,而是优雅抚媚地展现在你的面前。

时间: 2024-09-28 14:49:11

php在没用xdebug等调试工具的情况下如何让调试内容优雅地展现出来?--php数组格式化的相关文章

adapter-目前情况下怎么设计代码比较优雅(android)?

问题描述 目前情况下怎么设计代码比较优雅(android)? 原来的项目里有好多listview,为此为每个listview都单独写了adapter和item,现在设计改设计了,要求每个listview都能和微信通讯录一样有sortbar和分类栏,那么我原来的做法是给每个item上面添加上一个隐藏的分类栏,然后再adapter中选择要不要显示,但是现在listview太多了,这样效率很低,我要怎么设计代码才能方便的达到这个需求? 解决方案 直接将 数据按照字母排序A_z,然后item分为两类 标

wpf RichTextBox GetLineStartPosition 在某种情况下不能识别换行?

问题描述 TextPointertp1=rtb.Selection.Start.GetLineStartPosition(1);这样可以选中我选择行的下一行的TextPointer,ok,没问题.但是:TextPointert1=rtb.Document.ContentStart.GetLineStartPosition(1);我这样使用,却不能取到下一行的TextPointer.他会引发一个异常,后来发现,这种情况下,所有的内容(不管你有几行)都会被当做一个只有一行的超长字符串(其中包括换行符

《HTML5+CSS3网页设计入门必读》——1.9 在不涉及Web服务器的情况下分发内容

1.9 在不涉及Web服务器的情况下分发内容 在线发布HTML和多媒体文件显然是学习HTML和创建Web内容的主要原因.不过,在另外一些情况下,其他的发布形式简直是不可行的.例如,你可能希望在商品展示会上分发CD-ROM.DVD-ROM或USB驱动器,其中带有设计为Web内容的市场营销材料--即可以通过Web浏览器查看的超链接的文本,但是不涉及Web服务器.你还可能希望在可移动媒体上包括基于HTML的指导手册,以便在培训研讨会上给学生演示它们.这些只是说明在不涉及Internet的发布场景中如何

《HTML与CSS入门经典(第8版)》——2.4 在没有Web服务器情况下分发内容

2.4 在没有Web服务器情况下分发内容 在网上发布HTML和多媒体文件是学习HTML并且创建Web内容的主要原因.但是在有些情况下却不是这样.例如,你可能希望在一个商业展览会上分发带有被设计为Web内容的营销材料的CD-ROM.DVD-ROM或者U盘--也就是说,通过Web浏览器能够查看的超链接文本,但是不需要有Web服务器.你还可能希望将基于HTML的说明手册包含在培训班的学生的可移动媒体上.这只是HTML页面可以被用在不涉及互联网的发布方案的两个示例. 这个过程也被称为创建本地网站.即使没

Xdebug是一个开放源代码的PHP程序调试器

为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数).那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓. 什么是Xdebug? Xdebug是一个开放源代码的PHP程序调试器(即一个Deb

分析在Python中何种情况下需要使用断言_python

这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用. 为那些还不清楚它的人,Python的assert是用来检查一个条件,如果它为真,就不做任何事.如果它为假,则会抛出AssertError并且包含错误信息.例如:   py> x = 23 py> assert x > 0, "x is not zero or negative" py> assert x%2 == 0, "x is not

【BBED】丢失归档文件情况下的恢复

[BBED]丢失归档文件情况下的数据文件的恢复   1.1  BLOG文档结构图     1.2  前言部分   1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 若丢失归档情况下数据文件的恢复,bbed和隐含参数(重点) ② 数据库启动过程中的介质恢复,scn号的关系 ③ BBED如何修改文件头 ④ 归档和非归档模式下数据库的全备     Tips:        ① 若文章代码格式有错乱,推荐使用QQ

在不操作窗口的情况下触发resize事件

问题描述 在不操作窗口的情况下触发resize事件 function classJudegSize1() { var reallySize=parseInt($(".img_box")[1].naturalWidth); $(window).on("resize", function () { var img_box=parseInt($(".img_box:eq(1)").css("width")) ; var mainWa

php- js在不跳转的情况下向一个页面传递参数

问题描述 js在不跳转的情况下向一个页面传递参数 需求是把textarea传递到savexml.php进行数据保存,但同时我希望页面还留着当前页面.代码如下: <form name=""form1"" id=""form1"" method=""post"" action=""newtest.php""> <input type=