if else for PHP 三元运算符使用数据表

if else for PHP ternary operator using datatable

我可以就我的 DataTable 寻求帮助吗?我担心三元运算符。它无法识别我为 table.

设置的参数

这是我的table。

echo "
<tr>
<td>".$row['USERID']."</td>
<td>".$row['FINGERSCANNO']."</td>
<td>".$row['Date']."</td>
<td>".$row['Time']."</td>
<td>".(($row['CheckType']=='I') ? 'TIME-IN' : ($row['CheckType']=='O') ? 'TIME-OUT' : ($row['CheckType']=='i') ? 'OVERTIME-IN': ($row['CheckType']=='o') ? 'OVERTIME-OUT' : 'N/A')."</td> 
<td>".(($row['VERIFY']==1)?'OK':"NEEDS VERIFICATION")."</td>
</tr>
";
}
?>
</tbody>
</table>
</div>

这一行

<td>".(($row['CheckType']=='I') ? 'TIME-IN' : ($row['CheckType']=='O') ? 'TIME-OUT' : ($row['CheckType']=='i') ? 'OVERTIME-IN': ($row['CheckType']=='o') ? 'OVERTIME-OUT' : 'N/A')."</td>

只有当我这样做时才有效

<td>".(($row['CheckType']=='I') ? 'TIME-IN' : 'TIME-OUT')."</td>

有解决办法吗? CHECKINOUT.CHECKTYPE AS CheckType 的值为 IOi o.

你必须包裹某些部分,否则 reader 不知道什么取决于什么。试试这个:

<td>".(($row['CheckType']=='I') ? 'TIME-IN' : (($row['CheckType']=='O') ? 'TIME-OUT' : (($row['CheckType']=='i') ? 'OVERTIME-IN': (($row['CheckType']=='o') ? 'OVERTIME-OUT' : 'N/A'))))."</td>

PS: 实际上使用嵌套的三元运算符并不是很好,因为它不利于阅读。