这是检查是否设置了特定变量并在网站上显示的正确语法吗


Is this a correct syntax to check if specific variable is set and display on the website?

下面这只是我的脚本的一行,但我想问一下它在语法方面是否好?我已经将其从函数的其余部分中删除,它用于显示login_time,从表中获取数据并检查是否为offline以显示N/A,否则显示实际信息。。所以请告诉我。我问的是一些基本问题,比如'offline'是否设置正确,或者应该使用""之类的东西。将不胜感激。哦,还要从($data['Status'] == 'offline')中删除()吗?

    .....................
$replace = array
(
            'total_time'    => $data['Status'] == offline ? $this->secondsToTime(intval($data['TotalTime'])) : $this->secondsToTime(intval($data['TotalTime']) + (time() + 10800) - intval($data['LoginDT'])),
            'login_time'    => $data['Status'] == offline ? "N/A" : $this->secondsToTimeCurr(time() + 10800 - intval($data['LoginDT'])));
    .....................

这很混乱,不要在数组内部进行:

$replace['login_time'] = ($data['Status'] == 'offline') ? 
                         "N/A" : $this->secondsToTimeCurr(time() + 10800);

三元是好的,但它意味着短,如果它很难阅读,请使用正则if语句。

if($data['Status'] == 'offline'){
   $replace['login_time'] = "N/A";
}else{
   $replace['login_time'] = $this->secondsToTimeCurr(time() + 10800);
}

另一种方法是使用更可变的

$isOffline = $data['Status'] == 'offline';
$secondsToTimeCurr = $this->secondsToTimeCurr(time() + 10800);
$replace['login_time'] = $isOffline ? "N/A" : $secondsToTimeCurr;

有更多的方法可以编写相同的代码,最重要的是可读性。

至于单引号,它使字符串一字不差。

对于括号来说,这只是为了可读性。

希望这能有所帮助。