在同一行PHP中检查是否存在

时间:2016-09-26 14:49:22

标签: php

我如何在同一行中检查是否存在,但它不起作用:

<td><?= isset([$a['type1']]) ? [$a['type1']] : "0"; ?></td>

这是我的代码:

<td align="center" valign="top" class="textContent">                                                        
   <h2 style="text-align:center;font-weight:normal;font-  family:Helvetica,Arial,sans-serif;font-size:23px;margin-bottom:10px;color:#72C8F3;line-height:135%;">Error1 : '.($a["type1"]).' <br/>Error2 : '.($a["type2"]).'<br/>Error3 : '.($a["type3"]).'</h3>
</td>

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可以按照以下方式使用三元运算符。请注意,您不需要将数组包装在&#39; []&#39;

<?php echo (isset($a['type1']) ? $a['type1'] : 0); ?>

如果你想检查所有设置,你可以使用;

<?php echo ( isset($a['type1']) && isset($a['type2']) && isset($a['type3'] ) ?  $a['type1'] : 0 ); ?>

按照Magnus Eriksson的建议进一步简化:

<?php echo ( isset($a['type1'], $a['type2'], $a['type3']) ?  $a['type1'] : 0 ); ?>

如果您只想检查一个或/双管||表达式

<?php echo ( isset($a['type1']) || isset($a['type2']) || isset($a['type3'] ) ?  $a['type1'] : 0 ); ?>

答案 1 :(得分:3)

PHP 7引入了所谓的null coalescing运算符,它将语句简化为:

$var = $var ?? "default";

所以,你的代码将成为

<td> <?php echo $a['type1'] ?? "0"; ?> </td>
相关问题