You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP elseif逻辑问题:name3和name4为空时Div样式未按预期显示

问题出在条件判断的顺序上!

嘿,你遇到的问题是因为条件判断的逻辑顺序搞反啦~

你看,你先写了:

if ($name3 == "" || $name4 == ""):

这个条件的意思是「name3为空 或者 name4为空」,这已经包含了「两个都为空」的情况(毕竟“两个都空”肯定满足“其中一个空”的条件)。所以当$name3和$name4都为空时,第一个if就直接触发了,永远轮不到后面的elseif ($name3 == "" && $name4 == "")分支。

修正方案:调整条件顺序

应该先判断「两个都为空」的情况,再判断「其中一个为空」的情况,这样逻辑才会正确执行:

<?php 
$name3 = get_field('name3', $post->ID); 
$name4 = get_field('name4', $post->ID); 
?> 
<div class="col-lg-3"> <!-- name1 exists --> </div> 
<?php if ($name3 == "" && $name4 == ""): ?> 
    <div class="col-lg-6">
<?php elseif ($name3 == "" || $name4 == ""): ?> 
    <div class="col-lg-4">
<?php else: ?>
    <!-- 两个都有内容时的代码 -->
<?php endif; ?>

额外优化:用empty()更健壮

另外,get_field()有时候可能返回null而不是空字符串,用empty()函数判断会更准确,它能处理空字符串、null、0、false等“空值”情况:

<?php 
$name3 = get_field('name3', $post->ID); 
$name4 = get_field('name4', $post->ID); 
?> 
<div class="col-lg-3"> <!-- name1 exists --> </div> 
<?php if (empty($name3) && empty($name4)): ?> 
    <div class="col-lg-6">
<?php elseif (empty($name3) || empty($name4)): ?> 
    <div class="col-lg-4">
<?php else: ?>
    <!-- 两个都有内容时的代码 -->
<?php endif; ?>

这样调整后,当两个都为空时就会正确应用col-lg-6类啦~

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:05:59