【问题标题】:something goes wrong with my if statement我的 if 语句出了点问题
【发布时间】:2018-04-04 01:28:00
【问题描述】:

这是我有问题的地方......我希望当有人选择 $r 时显示“你是个笑话”,当有人选择 $p 时显示“你有我的尊重”,但它会继续打印“你有我的尊重” “不管怎样!

<?php
$r = ("silver"."bronze"."cooper");
$p = ("gold"."platinium"."diamond");
if($r == 'silver'.' bronze'.'cooper'){
    echo "You Are a Joke";
} elseif ($p == "gold"."platinium"."diamond"){
    echo "You Have My Respect";
} else {
    echo "Your Rank Is *** Bro";
}
?>

【问题讨论】:

  • 条件中的“青铜”中有一个额外的空格。这样做:if($r == 'silver'.'bronze'.'cooper') {
  • 现在它只是打印你是个笑话""
  • 您的示例中的逻辑是错误的。您正在检查 $r == "gold"."platinium"."diamond" 是否始终正确,因为您将其设置为该值。第二个条件也始终为真,但由于它使用“elseif”并且第一个条件始终为真,因此它永远不会触发。要么使用相同的变量来检查条件,要么引入第三个变量来保存选择并测试它。此外,“gold”.“platinum”.“diamond”与“goldplatinumdiamond”是一样的,所以我也不完全确定你在那里追求的是什么。

标签: php forms


【解决方案1】:

' bronze' 中删除extra space 以便解决您的问题

 <?php
      $r = ("silver"."bronze"."cooper");
      $p = ("gold"."platinium"."diamond");
      if($r == 'silver'.'bronze'.'cooper'){ //remove extra space
         echo "You Are a Joke";
      } elseif ($p == "gold"."platinium"."diamond"){
         echo "You Have My Respect";
      } else {
         echo "Your Rank Is *** Bro";
      }
  ?>

【讨论】:

  • 我做了,但现在它只是继续打印“你是个笑话”
  • 因为您的条件第一次为真,所以每次都会显示第一条消息
  • 我能做些什么来防止这种情况发生?
  • 但是你想做什么
猜你喜欢
  • 1970-01-01
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 2014-01-23
  • 1970-01-01
  • 2012-11-19
  • 2013-10-29
相关资源
最近更新 更多