请求协助修正PHP MySQL中的if-else条件判断代码问题
修正你的PHP条件判断代码(图标显示逻辑)
我来帮你搞定这段代码的问题,先梳理下原代码里的坑,再给出正确的实现:
原代码的核心问题
- 语法错误:第一个
if条件里的两个判断$video != NULL和$photo != NULL之间没加逻辑运算符,PHP根本没法解析这种写法; - 逻辑颠倒:你写的是当
$video不为空时显示相机图标,$photo不为空时显示视频图标,这完全搞反了需求; - 代码不完整:最后一个
elseif的语句没写完直接截断,会触发语法错误; - 判断不够严谨:用
!= NULL来判断非空不够全面,PHP里推荐用!empty(),它能同时处理NULL、空字符串、0这些“空值”场景,特别适合ID类字段的判断(毕竟很多时候0代表没有对应内容)。
修正后的完整代码
// 先初始化$icon变量,避免出现未定义变量的警告 $icon = ''; // 只要视频或图片有一个不为空,就显示两个图标(和你原注释的意图一致) if (!empty($video) || !empty($photo)) { $icon = '<i class="fa fa-camera"></i> <i class="fa fa-video-camera"></i>' . "\n"; } // 只有视频不为空时,显示视频图标 elseif (!empty($video)) { $icon = '<i class="fa fa-video-camera"></i>' . "\n"; } // 只有图片不为空时,显示相机图标 elseif (!empty($photo)) { $icon = '<i class="fa fa-camera"></i>' . "\n"; }
可选调整(如果原注释表述有误)
要是你实际想实现的是**“只有视频和图片都不为空时才显示两个图标”**,那把第一个if里的||(逻辑或)换成&&(逻辑与)就行:
if (!empty($video) && !empty($photo)) { $icon = '<i class="fa fa-camera"></i> <i class="fa fa-video-camera"></i>' . "\n"; }
这样修改后,代码既符合PHP语法规范,又能准确根据$video和$photo的状态显示对应图标啦。
内容的提问来源于stack exchange,提问作者Atilla
相关产品推荐
相关产品推荐

