1

私はデバッグバグメソッドを含むいくつかのカスタムクラスに取り組んできました。定数デバッグ変数の使用

define('DEBUG', 3);

表示するデバッグのレベルを設定します。FALSE(なし)、1(基本)、2(中)、3(上級)などから。

コード全体を通して、上記のデバッグメソッドを呼び出しています。Exp:

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

これを三項演算子に凝縮できますか?何かのようなもの:

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

もう少し長いことは知っていますが、すべてを1行にするなどして、保守が容易になります。

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 に答える