写程序最讨厌的是程序发生错误,但是却又不知道该从何debug起,我们通常会使用print_r 或者 var_dump 或者是 echo 慢慢的debug。如果你跟我一样使用PHP 5开发,现在可以使用Krumo这个简单好用的工具帮助我们做这件事情。

虽然IDE也有内建的debug工具,但是并不是每个人都使用IDE来进行PHP的开发,这时候Krumo就可以大展身手,即使使用IDE来开发,我相信Krumo也可以帮忙我们节省不少时间。但是由于Krumo只支援PHP 5,所以使用PHP 4的朋友只好说声抱歉,或者是将PHP升级到5。

当我们下载Krumo之后,只需要将Krumo的路径设定在INCLUDE_PATH或者是将完整路径写在class.krumo.php里面,Krumo是使用CSS和树状目录来显示debug讯息,所以在krumo.ini这个设定档里面我们可以选择我们想要使用的skin,debug工具也有skin可以选?没错,你没有看错,真的是这样。

使用Krumo的方法:

首先去下载一个Krumo http://sourceforge.net/projects/krumo/ 解压在一个有运行权限的目录下,然后用include_once '../krumo/class.krumo.php';将Krumo导入进来,接下来就enjoy it!如果你用的是eclipse开发环境的话,将Krumo的路径包含到

PHP Include Path里的话,可以大幅减少eclipse的警告。操作步骤如下:

右击工程的PHP Include Path目录,选择如下:

接下来选择库选项卡:

在这个选项卡里单击Add External Source Folder……,选择你的krumo路径:

确定之后就可以从eclipse里面看到krumo的信息了,还可以使用eclipse的代码补全,很方便吧

给出一段测试krumo强大功能的代码:

header("Content-type: text/html; charset=utf-8");

include_once '../krumo/class.krumo.php';

echo "我可以打印\$_GET变量:";

krumo::get();

echo "输出http header信息:";

krumo::headers();

echo "两种方式打印数组:";

$array=array(1=>'hao123',2=>'tudou',3=>'2333');

echo "原生的:";

krumo::dump($array);

echo "没有修改过的,你可以自定义这个函数的名称:";

krumo($array);

// 打印调试追踪

krumo::backtrace();

// 打印所有 included(or required) 文件

krumo::includes();

// 打印所有 included 函数

krumo::functions();

// 打印所有声明了的类

krumo::classes();

// 打印所有define常量

krumo::defines();

测试效果,很强大吧:

此外我们也可以动态的开启或关闭Krumo

// disable Krumo

krumo::disable();

// Krumo is disabled, nothing is printed

krumo::includes();

// enable Krumo

krumo::enable();

// Krumo is enable, printing is OK

krumo::classes();

特别是在数组有嵌套的时候,Krumo折叠的功能将发挥出强大的效果!

php class使用方法,PHP调试类Krumo使用教程相关推荐

  1. Hardfault调试方法(调试技术)

    1. 概述 在单片机调试过程中最让开发者感到头疼的就是遇上Hardfault错误问题了,如何快速的触发问题的原因是解决问题的关键.可是类问题对于比较初级的开发者来说往往没有掌握有效的方法找到是那行代码 ...

  2. Android app:用Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)以及修改LogCat的颜色

    Android app:Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)和修改LogCat的颜色 一.包含Log类,import android.util.Log ...

  3. php执行跟踪_PHP使用debug_backtrace方法跟踪调试代码调用详解

    本文实例讲述了PHP使用debug_backtrace方法跟踪调试代码调用.分享给大家供大家参考,具体如下: 在开发过程中,例如要修改别人开发的代码或调试出问题的代码,需要对代码流程一步步去跟踪,找到 ...

  4. 【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )

    文章目录 一.Java 类成员及 setter 和 getter 方法设置 二.Groovy 类自动生成成员的 getter 和 setter 方法 一.Java 类成员及 setter 和 gett ...

  5. C#泛型委托,匿名方法,匿名类

    C#泛型委托,匿名方法,匿名类 class Test{delegate K proxy<T, K>(T t, K k); //泛型委托,注意返回值的写法,返回值的类型K先于其声明proxy ...

  6. java map常用类及其方法_Day50.Map类常用的方法 -Java常用类、集合#、IO

    Day50.Map类常用的方法 -Java常用类.集合#.IO Day50.Map类常用的方法 -Java常用类.集合#.IO Map类常用的方法 . 总结: 常用方法 添加: put(Object ...

  7. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  8. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除了直接用ApplicationBuilder的Use()方法注册中间件外,还可以使用ApplicationB ...

  9. java中如何使用反射调用方法以及获得类中的属性

    使用反射获取类中的方法: 1):获取方法所在类的字节码对象. 2):获取方法. ------------------------------------------------------------ ...

最新文章

  1. 时间序列基础教程总结!
  2. pandas使用groupby函数按照多个分组变量进行分组聚合统计、使用agg函数计算分组的多个统计指标(grouping by multiple columns in dataframe)
  3. 一天学完spark的Scala基础语法教程教程三、循环结构(idea版本)
  4. 史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
  5. html5连接mysql数据库操作_html5-本地数据库的操作
  6. 关于互联网大厂裁员,引发企业危机处理与个人危机处理的思考
  7. 三数之和,去除重复。
  8. Java 基础(十九)代理
  9. 网络安全工程考试大纲
  10. PHP简易留言板项目
  11. matlab图像频谱分析代码_信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析)...
  12. 什么是软件的生命周期?
  13. vue中使用clipboard实现点击复制功能
  14. Spark核心开发者:性能超Hadoop百倍,算法实现仅有其1/10或1/100
  15. #今日论文推荐# 将有色液体图像转换成透明液体,CMU教机器人准确掌控向杯中倒多少水
  16. Qgis教程09:高程栅格数据
  17. 关于网盘等图标出现在设备和驱动器的情况
  18. php怎么弄三角形,css中怎么设置三角形
  19. 3366 打豆豆 瞄准线 源码程序
  20. 修复Linux 的GRUB引导文件

热门文章

  1. VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
  2. 服务器系统上1068错误,错误1068,详细教您启动网络服务错误1068怎么解决
  3. php window.onload,tp_window.onload+相应操作
  4. Mybatis(2)---多表查询
  5. openssl rsa密钥
  6. 项目管理知识体系指南_MP考前冲刺丨项目管理知识体系指南(PMBOK)串讲(11)...
  7. 简述isodata算法的原理_基于UWB技术的室内定位方法简述
  8. 迈普路由器访问控制列表配置命令_如何选购企业路由器?选购企业路由器需注意什么...
  9. java实现两台计算机的互联,如何用Java语言实现两台计算机之间的文件传输?
  10. java中的Static、final、Static final各种用法