入下面的一条代码即可查看程序中的所使用的变量(包括数组和对象)的类型和值: echo ss_as_string($my_variable);
使用下面的语句,我们可以直接查看程序中所有的变量的值: echo ss_as_string($GLOBALS);
3. 控制Log信息的函数
调试PHP程序的另外一种重要的方法就是查看Log信息。如果能够方便地控制Log信息的级别以及Log信息的显示内容,将会给程序调试带来更多的便利。下面的几个函数可以方便地实现这个功能。
$ss_log_level = 0; $ss_log_filename = /tmp/ss-log; $ss_log_levels = array( NONE => 0, ERROR => 1, INFO => 2, DEBUG => 3); function ss_log_set_level ($level = ERROR) { global $ss_log_level; $ss_log_level = $level; } function ss_log ($level, $message) { global $ss_log_level, $ss-log-filename; if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) { // 不显示Log信息 return false; } $fd = fopen($ss_log_filename, "a+"); fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n"); fclose($fd); return true; } function ss_log_reset () { global $ss_log_filename; @unlink($ss_log_filename); }
在上面的函数中,有四个Log级别变量。运行PHP程序时,只有当Log的级别低于预设的级别值时,Log信息才可以被记录和显示出来。例如,在程序中加入如下的一条语句: ss_log_set_level(INFO);
那么,运行PHP程序时,只有ERROR和INFO级别的LOG信息才能被记录和显示出来,DEBUG级的信息则被忽略了。除此之外,我们还可以设定显示的信息内容,其语句如下: ss_log(ERROR, "testing level ERROR"); ss_log(INFO, "testing level INFO"); ss_log(DEBUG, "testing level DEBUG");
你也可以随时使用下面的语句清空LOG信息: ss_log_reset();
4.速度测试函数
为了优化代码,我们需要一种可以测试代码运行时间的方法,从而来选择最优的代码。下面的函数可以测试运行代码所需的时间:
function ss_timing_start ($name = default) { global $ss_timing_start_times; $ss_timing_start_times[$name] = explode( , microtime()); } function ss_timing_stop ($name = default) { global $ss_timing_stop_times; $ss_timing_stop_times[$name] = explode(, microtime()); } function ss_timing_current ($name = default) { global $ss_timing_start_times, $ss_timing_stop_times; if (!isset($ss_timing_start_times[$name])) { return 0; } if (!isset($ss_timing_stop_times[$name])) { $stop_time = explode(, microtime()); } else { $stop_time = $ss_timing_stop_times[$name]; } $current = $stop_time[1] - $ss_ |