[英]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.