通知短信+运营短信,5秒速达,支持群发助手一键发送🚀高效触达和通知客户 广告
[TOC] # PHP调试助手Kint > 当调试PHP代码时,var_dump()、print_r()和debug_backtrace()是我们最常用的工具。Kint,一个开源软件,一个不需安装的替代者,它提供了更好的调试体验。它巧妙地检测几乎不可读的数据,并将它们定制成规则的输出显示。变量名、文件、行号及包装的函数它全能提示出来。 * ## PHP 调试函数 ~~~ print_r() var_dump() debug_backtrace() ~~~ > 介绍给大家一个很好用的PHP DEBUG工具---Kint http://raveren.github.io/kint/ 在这个主页上你几乎能获取到所有关于它的信息了,我在这里只是对这个工具及其使用做个简要介绍。 它是一个无需安装的,易用的,强力的PHP调试助手,它能很好的替代var_dump(),print_r(),debug_backtrace()这些函数。 它设计的目的就是在调试时能将数据以最好的方式呈现给你。 * ## 安装和使用 ### 1. 需求: 需要PHP 5+(额外的功能需要5.3+),现代的浏览器。 ### 2.下载和安装: 下载在Kint的主页,下载后将Kint目录按你的想法随意放置,接着只需要将 Kint.class.php 包含进来就可以开始了! ### 3.快速入门: ~~~ [php] view plain copy 1. <?php 2. require '/kint/Kint.class.php'; 3. 4. 5. Kint::dump( $_SERVER ); 6. // 或许,可以试试更简单的,使用缩写: 7. d( $_SERVER ); 8. // 或者,你可以用dd()在打印完之后直接结束程序; 9. dd( $_SERVER ); // 相当于 d( $_SERVER ); die; 10. 11. 12. // 跟踪调试信息: 13. Kint::trace(); 14. // 这么写跟上面的效果相同 15. Kint::dump( 1 ); 16. 17. 18. // 禁用所有输出 19. Kint::enabled(false); 20. // 之后这样的方法调用,都不会有输出了 21. d('Get off my lawn!'); // 没有效果 ~~~ ### 4.配置 你可以将默认配置 config.default.php 重命名成 config.php,这样你自己的配置就会覆盖默认配置了。在配置文件中,每一项都有详细的说明。 ### 5.进阶用法 > 文本输出 可以只输出文本信息,而不是像之前那样的格式化样式 ~~~ 1. <?php 2. s( $variable ); 3. // 还有 4. sd( $variable ); // 输出完直接退出,还记得上面的dd()吗 ~~~ > 实时修饰符 ~~~ 1. <?php 2. +Kint::dump( $variable ); 3. // 或者这么写 4. +d( $variable ); ~~~ > 可用的修饰符有: > ● +Kint::dump(); 将会忽视嵌套层次限制 > - 当你输出一个特别负责的对象(比如说嵌套层次很深的数组时),你会收到一个 *DEPTH TOO GREAT* 的信息,用这个修饰> 符可以忽略掉这个限制; > - 警告:可能引起浏览器异常 > ● -Kint::dump(); 将会清除在这之前的所有输出信息 > - 在页面顶端显示; > - 当变量在HTML中时,使用这个会特别有用,与dd()一起使用也很有效果; > - 在ob_clear() 和 ob_start() 环境中使用可能会失效; > ● @Kint::dump(); 将会返回Kint::dump()的值,而不是打印结果,可以参考print_r(, true); > - 可以用来记录日志; > ● !Kint::dump();输出结果将会自动展开,你不用手动去点了。 * * * * * ### 6.Kint使用 ~~~ <php? //加载Kint require('Kint.class.php'); //打印$_POST,在浏览器上显示的打印信息特别有条理,看起来特别舒服 //果断抛弃var_dump,echo...... Kint::dump($_POST); //打印代码运行至此处的调用链,比debug_backtrace清晰多了 Kint::trace(); //特殊语法 //打印$_POST,默认在浏览器上展开所有输出 !Kint::dump($_POST); //打印$_POST,清除调用之前的所有输出 -Kint::dump($_POST); //打印$deepObject,如果参数比较复杂,建议使用该函数 +Kint::dump($deepObject); ~~~