繁体   English   中英

三元运算符显示1代替null

[英]Ternary Operator shows 1 instead on null

您好,我正在使用三元运算符来显示链接(如果它们存在),如果数据库字段为NULL,则我什么都不想要。 现在它显示1 我该如何逃避?

echo "".(($row['photo_01']=='')? :'<li><img src="uploads/'.$row['photo_01'].'"></li>')."

如果将三元运算符的第二部分留空,则等效于此:

echo "".(($row['photo_01']=='')
    ? ($row['photo_01']=='') // this is duplicated
    :'<li><img src="uploads/'.$row['photo_01'].'"></li>')."

更笼统:

($x ? $x : $y) === ($x ?: $y)

($row['photo_01']=='')的计算结果为true ,其回显为1 ,因此您需要更新代码,如下所示:

echo "".(($row['photo_01']=='')? '' :'<li><img src="uploads/'.$row['photo_01'].'"></li>')."

当然,您总是可以像这样清理它:

echo "".($row['photo_01'] ? '<li><img src="uploads/'.$row['photo_01'].'"></li>' : '')."

使用空引号表示空'',并将三进制结果放入变量中,然后在回显中使用它以防止混淆:

$result = ($row['photo_01']=='') ? '' :'<li><img src="uploads/'.$row['photo_01'].'"></li>';

echo  $result;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM