if else for PHP三元运算符使用数据表[重复]

Posted

技术标签:

【中文标题】if else for PHP三元运算符使用数据表[重复]【英文标题】:if else for PHP ternary operator using datatable [duplicate] 【发布时间】:2019-11-30 02:47:04 【问题描述】:

我可以就我的 DataTable 寻求帮助吗?我担心三元运算符。它无法识别我为表格设置的参数。

这是我的桌子。

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>

这一行

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

只有当我这样做时才有效

&lt;td&gt;".(($row['CheckType']=='I') ? 'TIME-IN' : 'TIME-OUT')."&lt;/td&gt;

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

【问题讨论】:

不要使用嵌套的三元运算符。使用多个 if-else-condition 或更好的 switch-case。 这种情况下switch case是最好的。 @GentleSama 我该怎么做?我可以问吗? &lt;td&gt;echo() 内。 @SureshKamrushi 能否请您提供一个示例,我尝试这样做,但总是出错。 创建一个 switch-case 应用你想要的值到一个变量$result 然后回显$result 【参考方案1】:

您必须包装某些部分,否则读者不知道什么取决于什么。试试这个:

<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:实际上使用嵌套的三元运算符并不是那么好,因为它很难阅读。

【讨论】:

这就是我错过的。我现在可以嵌套,我可能很快就会改变。感谢您的帮助!

以上是关于if else for PHP三元运算符使用数据表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

三元运算符的速度是 if-else 块的两倍?

PHP三元运算符

php 中 三元运算和 IF语句 运行速度

Python等效于省略三元运算符的第二部分(a if a else b)

Twig 三元运算符,简写 if-then-else

为啥使用“if-else”语句会在看似相同的三元运算符构造不会产生 TypeScript 编译器错误?