[英]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.