【问题标题】:Issue displaying text if between two integers [duplicate]如果在两个整数之间显示文本[重复]
【发布时间】:2020-03-26 01:58:08
【问题描述】:

仍在尝试学习 PHP,我正在为我拥有的自制酒吧设置制作数字显示器,并且有一些代码应该读取包含 5 杯啤酒的 CSV,并为每杯啤酒吐出数据。我在解析 CSV、使用 echo 显示字符串和整数时没有问题,但是当我尝试使用 if 语句时,它开始将代码作为文本吐出

这是我的sn-p代码:

        <? if ($ibu['Beer1'] >= 1 && $ibu['Beer1'] <= 25):?>        
    Slightly bitter
    <? elseif ($ibu['Beer1'] >= 26 && $ibu['Beer1'] <= 50) :?>
    Kind of bitter
    <? elseif ($ibu['Beer1'] >= 51) :?>
    Very bitter
    <? endif;?>

我在加载页面时得到的是这样的:

= 1 && $ibu['Beer1'] <=25):?> slightly bitter= 26 && $ibu['Beer1']<=50:?>Kind ofbitter=51):?>Very bitter

所以它似乎在读取“if”和“elseif”,但将其他所有内容都作为文本吐出。正如我所说,我仍在自学,所以我不完全确定是什么原因造成的。

【问题讨论】:

  • 确定你有整数值吗?或尝试(int) $ibu['Beer1']
  • 要么使用&lt;?php,如答案中所述,要么启用短标签(尽管该功能将在 PHP8 中删除),如副本中所述。

标签: php csv if-statement integer


【解决方案1】:

你忘了在问号后面提到php 这样做:

    <?php if ($ibu['Beer1'] >= 1 && $ibu['Beer1'] <= 25):?>        
    Slightly bitter
    <?php elseif ($ibu['Beer1'] >= 26 && $ibu['Beer1'] <= 50): ?>
    Kind of bitter
    <?php elseif ($ibu['Beer1'] >= 51): ?>
    Very bitter
    <?php endif;?>

【讨论】:

    【解决方案2】:

    &lt;? 需要在 php.ini 中启用 short_open_tag

    还建议不要这样做,因为它不仅与 xml 冲突,而且会在以后的 PHP 版本中被删除。

    将其更改为 &lt;?php 将解决您的问题,并启用 short_open_tag,但我的投票是让 short_open_tag 被禁用,因为它已被弃用

    <?php if ($ibu['Beer1'] >= 1 && $ibu['Beer1'] <= 25) { ?>        
        Slightly bitter
    <?php } elseif ($ibu['Beer1'] >= 26 && $ibu['Beer1'] <= 50) { ?>
        Kind of bitter
    <?php } elseif ($ibu['Beer1'] >= 51) { ?>
        Very bitter
    <?php }?>
    

    【讨论】:

    • 这么简单真是令人难为情。感谢您的帮助和解释!我很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多