加载中...

变量调试


除了Trace调试之外,系统还提供了\think\Debug类用于各种调试。

输出某个变量是开发过程中经常会用到的调试方法,除了使用php内置的var_dumpprint_r之外,ThinkPHP框架内置了一个对浏览器友好的dump方法,用于输出变量的信息到浏览器查看。

用法:

  1. Debug::dump($var, $echo=true, $label=null)
  2. 或者
  3. dump($var, $echo=true, $label=null)

相关参数的使用如下:

参数 描述
var(必须) 要输出的变量,支持所有变量类型
echo(可选) 是否直接输出,默认为true,如果为false则返回但不输出
label(可选) 变量输出的label标识,默认为空

如果echo参数为false 则返回要输出的字符串

使用示例:

  1. $blog = Db::name('blog')->where('id', 3)->find();
  2. Debug::dump($blog);
  3. // 下面的用法是等效的
  4. dump($blog);

在浏览器输出的结果是:

  1. array(12) {
  2. ["id"] => string(1) "3"
  3. ["name"] => string(0) ""
  4. ["user_id"] => string(1) "0"
  5. ["cate_id"] => string(1) "0"
  6. ["title"] => string(4) "test"
  7. ["content"] => string(4) "test"
  8. ["create_time"] => string(1) "0"
  9. ["update_time"] => string(1) "0"
  10. ["status"] => string(1) "0"
  11. ["read_count"] => string(1) "0"
  12. ["comment_count"] => string(1) "0"
  13. ["tags"] => string(0) ""
  14. }

如果需要在调试变量输出后中止程序的执行,可以使用halt函数,例如:

  1. $blog = Db::name('blog')->where('id', 3)->find();
  2. halt($blog);
  3. echo '这里的信息是看不到的';

执行后会输出

  1. array(12) {
  2. ["id"] => string(1) "3"
  3. ["name"] => string(0) ""
  4. ["user_id"] => string(1) "0"
  5. ["cate_id"] => string(1) "0"
  6. ["title"] => string(4) "test"
  7. ["content"] => string(4) "test"
  8. ["create_time"] => string(1) "0"
  9. ["update_time"] => string(1) "0"
  10. ["status"] => string(1) "0"
  11. ["read_count"] => string(1) "0"
  12. ["comment_count"] => string(1) "0"
  13. ["tags"] => string(0) ""
  14. }

并中止执行后续的程序。


还没有评论.