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

Php 这是检查特定变量是否设置并显示在网站上的正确语法吗?,php,Php,下面这只是我的脚本的一行,但我想问一下它在语法方面是否好? 我已经将它与函数的其余部分断开,它用于显示login\u time从表中抓取数据,并检查它是否处于脱机状态,以显示N/A,否则显示实际信息。。所以请让我知道。我问的是一些基本问题,比如'offline'设置是否正确,或者是否应该使用“以及此类内容。将不胜感激。 哦,还要从($data['Status']='offline')中删除() ..................... $replace = array (

下面这只是我的脚本的一行,但我想问一下它在语法方面是否好? 我已经将它与函数的其余部分断开,它用于显示
login\u time
从表中抓取数据,并检查它是否处于
脱机状态,以显示
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;

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

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

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


希望这能有所帮助。

@Mr.Llama我遗漏了哪一部分,可能是我可以进一步扩展OOPS,我删除了以前的评论。OP的问题似乎更多的是关于风格(单引号与双引号、paren用法等),而不是关于实际代码的正确性。@Mr.Llama我在回答所有问题时做了更多的阐述。谢谢你的回答,我理解它很混乱,但即使是混乱的时候,它是否正确?我更喜欢全部在数组中,因为我有很多相似的变量,否则对我来说会很混乱。我已经用我更新的数组更新了我的主要帖子。请让我知道它看起来是否正常?如果它正常工作,那么就可以@Monk25,就像我在回答中说的,只要它可读性比你好。如果需要更多的线条才能更清晰,那么就这样做吧,这更多的是风格问题,而不是正确性问题。因此,很难得到明确的答案。