内联PHP中的空变量


Empty variable in inline PHP

我在使用内联PHP验证变量是否为空时遇到问题。我目前有以下代码:

<li>Nano: <?php if($Info['Nano'] == true): echo $Info['Nano']; else: echo $noRecords; endif; ?></li>

$Info['Nano']被设置时,这一切都很好,当它不存在时,我会得到存储在$noRecords中的字符串,但我也会得到一个未定义的索引通知。

我该如何解决这个问题?

您可以检查是否已设置(使用isset()):

<li>Nano: <?php if(isset($Info['Nano']) && $Info['Nano'] == true): 
                   echo $Info['Nano'];
                else: 
                   echo $noRecords;
                endif; ?></li>

您只需添加一个AND语句即可检查它是否已设置,如下所示:

<li>Nano: <?php if(isset($Info['Nano']) && $Info['Nano'] == true): echo $Info['Nano']; else: echo $noRecords; endif; ?></li>

如果你愿意,你也可以使用三元运算符,这样整行就小一点:

<li>Nano: <?= (isset($Info['Nano']) && $Info['Nano'] == true)? $Info['Nano'] : $noRecords ?></li>