簡體   English   中英

使用PHP三元運算符將數據傳遞給方法

[英]Using PHP ternary operators to pass data to a method

我一直在研究一些自定義類,包括調試錯誤方法。 使用常量調試變量

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) ;

我知道它的時間更長一點,但是將它們全部放在一條線上等將使其易於維護。

為什么不將測試if (DEBUG == whatever)放在$this->debug函數中呢?

然后您的代碼如下所示:

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

和您的調試功能:

function debug($title, $response, $die = FALSE)
{
    if (DEBUG == whatever)
      dosomething();
}

您應該反過來做。 始終創建一個debug方法/函數,以調試級別調用該方法/函數。 在該方法內部,確定是否滿足級別。

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

public function debug($message, $level) {
    if (DEBUG >= $level) {
        echo $message;
    }
}

如果您傾向於將它們全部放在一條直線上,則可以使用

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

但是,與僅使用if語句相比,這可能會影響代碼的可讀性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM