1

我一直在研究一些自定义类,包括调试错误方法。使用常量调试变量

define('DEBUG', 3);

我设置了要显示的调试级别。FALSE(无)、1(基本)、2(中等)、3(高级)等。

在整个代码中,我都调用了所述调试方法。经验:

if(DEBUG == TRUE)
    $this->status("DB connection",NULL);

这可以浓缩成三元算子吗?就像是:

$this->debug($title, $response, $die) = (DEBUG == TRUE) ? ("DB Connection", NULL) : (NULL) ;

我知道它有点长,但是将它们全部放在一条线上等会更容易维护。

4

3 回答 3

4

为什么不把测试if (DEBUG == whatever)放在$this->debug函数里面呢?

然后你的代码看起来像:

$this->debug("DB Connection", NULL);

还有你的调试功能:

function debug($title, $response, $die = FALSE)
{
    if (DEBUG == whatever)
      dosomething();
}
于 2012-08-10T14:01:19.647 回答
4

你应该反过来做。debug始终无条件地创建一个方法/函数,以调试级别调用它。在该方法中,确定是否满足级别。

$this->debug('DB connection', DEBUG_INFO);

public function debug($message, $level) {
    if (DEBUG >= $level) {
        echo $message;
    }
}
于 2012-08-10T14:01:41.843 回答
0

如果您倾向于将所有内容放在一行中,则可以使用

DEBUG && $this->status("DB connection",NULL);

但是,与仅使用 if 语句相比,这可能会影响代码的可读性。

于 2012-08-10T14:02:31.580 回答