【问题标题】:Create multiple strings based on elseif condition in php在php中根据elseif条件创建多个字符串
【发布时间】:2021-07-24 14:03:13
【问题描述】:

虽然此代码似乎可以按照 td 行的预期更改 $tdstyle,但它不会根据 esleif 条件适当地更新 $font 和 $text。即使不是真的,它似乎总是仅根据 else 条件来保持这些字符串相同。也许只是语法问题?我确信有更好的方法可以做到这一点,但我有限的知识使我走到了这一步。有什么建议吗?

<?php       
$num = (float)$uvindex;
            if($num >10) {
                $tdstyle='#B567A4';
                $font='white';
                $text='Extreme';
                } elseif($num >=8) {
                $tdstyle='#E53210';
                $font='white';
                $text='Very High';
                } elseif($num >=6) {
                $tdstyle='#F18B00';
                $font='black';
                $text='High';
                } elseif($num >=3) {
                $tdstyle='#FFF300';
                $font='black';
                $text='Moderate';
                } else $tdstyle='#3EA72D'; $font='black'; $text='Low';
            ?>
             <td height="82" colspan="2" align="center" valign="middle" class="data1" style="text-align:center; background-color:<?php echo $tdstyle ?>; color:<?php echo $font ?>; border: 3px solid black; border-radius: 7px; font-size:12px;">

【问题讨论】:

  • 您需要将所有else 语句放在{} 中以将它们放在一起,否则$font$text 将始终从那里设置。
  • 如果您查看 PSR-12 之类的关于缩进的内容,它将有助于纯粹通过代码的布局来查看此类问题。

标签: php html string if-statement conditional-statements


【解决方案1】:

您的else 仅包含第一条语句(您设置$tdstyle 的位置)。

这个

// ...
} else $tdstyle='#3EA72D'; $font='black'; $text='Low';

等价于

// ...
} else {
    $tdstyle='#3EA72D';
}
$font='black'; // you probably want these in the 
$text='Low';   //  above else block

所以$font$text 将始终分别为'black''Low'。请记住,; 终止语句,而不是换行符。听听 Nigel 的 cmets:投资格式化程序来帮助您捕捉此类错误。

【讨论】:

    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2015-06-07
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多