【问题标题】:How to use switch in php如何在php中使用switch
【发布时间】:2017-09-17 07:19:19
【问题描述】:
if (isset($_POST["submit"])){
$oride='';
$count = "25";
$origin = $_POST["origin"];
$destinataion = $_POST["destination"];
$oride = ($destination = $_POST["destination"] - $origin= $_POST["origin"]);

    switch (true) {
    case ($count<="0"):
    echo "invalid";
        break;

    case ($count==="15"):
    echo $count;
        break;

    case ($count==="16"):
    $total = $count + "1";
    echo $total;
        break;
    default:
        echo "hello";
}  }

代码将首先计算,然后根据计算结果执行 switch。我试过 if else 但它会太长,因为 case 会上升到 130。

【问题讨论】:

  • 你的 $count 是一个字符串,除此之外我相当有信心你希望它是一个 int。
  • 那么问题出在哪里?

标签: php switch-statement


【解决方案1】:

你必须在 switch 语句中使用 var $count 和常量以防万一

   switch ($count) {
    case  "0" :
    echo "invalid";
        break;

    case "15":
    echo $count;
        break;

    case "16":
    $total = $count + "1";
    echo $total;
        break;
    default:
        echo "hello";
        break;
  }

【讨论】:

  • 谢谢兄弟这对我有用。 . .now 如何在 $count 低于 0 时包含一个案例
  • @JericJavier 在默认情况下(或在开关之外)使用if
【解决方案2】:

您必须为switch 语句提供一个表达式,而case 语句只是该表达式结果的“版本”。唯一不能直接做的是“

if (isset($_POST["submit"])){
$oride='';
$count = "25";
$origin = $_POST["origin"];
$destinataion = $_POST["destination"];
$oride = ($destination = $_POST["destination"] - $origin= $_POST["origin"]);

// --- normalize $count:
$count = $count <= 0 ? 0 : $count;

// use $count as expression:
    switch ($count) {
    case 0:
    echo "invalid";
        break;

    case "15":
    echo $count;
        break;

    case "16":
    $total = $count + "1";
    echo $total;
        break;
    default:
        echo "hello";
}  }

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2012-05-07
    相关资源
    最近更新 更多