变量调试

最后更新于:2022-04-01 21:24:48

除了Trace调试之外,系统还提供了`\think\Debug`类用于各种调试。 输出某个变量是开发过程中经常会用到的调试方法,除了使用php内置的`var_dump`和`print_r`之外,ThinkPHP框架内置了一个对浏览器友好的`dump`方法,用于输出变量的信息到浏览器查看。 用法: ~~~ Debug::dump($var, $echo=true, $label=null) 或者 dump($var, $echo=true, $label=null) ~~~ 相关参数的使用如下: | 参数 | 描述 | |-----|-----| | var(必须) | 要输出的变量,支持所有变量类型 | | echo(可选) | 是否直接输出,默认为true,如果为false则返回但不输出 | | label(可选) | 变量输出的label标识,默认为空 | 如果echo参数为false 则返回要输出的字符串 使用示例: ~~~ $blog = Db::name('blog')->where('id', 3)->find(); Debug::dump($blog); // 下面的用法是等效的 dump($blog); ~~~ 在浏览器输出的结果是: ~~~ array(12) { ["id"] => string(1) "3" ["name"] => string(0) "" ["user_id"] => string(1) "0" ["cate_id"] => string(1) "0" ["title"] => string(4) "test" ["content"] => string(4) "test" ["create_time"] => string(1) "0" ["update_time"] => string(1) "0" ["status"] => string(1) "0" ["read_count"] => string(1) "0" ["comment_count"] => string(1) "0" ["tags"] => string(0) "" } ~~~ 如果需要在调试变量输出后中止程序的执行,可以使用`halt`函数,例如: ~~~ $blog = Db::name('blog')->where('id', 3)->find(); halt($blog); echo '这里的信息是看不到的'; ~~~ 执行后会输出 ~~~ array(12) { ["id"] => string(1) "3" ["name"] => string(0) "" ["user_id"] => string(1) "0" ["cate_id"] => string(1) "0" ["title"] => string(4) "test" ["content"] => string(4) "test" ["create_time"] => string(1) "0" ["update_time"] => string(1) "0" ["status"] => string(1) "0" ["read_count"] => string(1) "0" ["comment_count"] => string(1) "0" ["tags"] => string(0) "" } ~~~ 并中止执行后续的程序。
';