1.9. if ,switch

未匹配的标注

持之以恒,方得始终!

条件判断,在程序中几乎无所不在,举个最简单的例子,我们接受用户的参数进来,就得做各种条件判断,比如是否是数值,在什么范围,是否是数组,字符串,是哪些字符串。

if

if ($totalqty == 0) {  // 条件为true时,就会执行 {} 中
    echo "没有下单任何物品";
}

if…else

if ($totalqty == 0) {
    echo "没有下单任何物品";
} else {
    echo "下单总数为" . $totalqty;
}

嵌套的 if…else

一般项目中,不可能总是很简单的判断,很可能判断里面还有判断。所以我们也不得不在if,else中,再次使用 if… else 。

if ($totalqty == 0) {
    echo "下单数不能为0";
} else {
    if ($tireqty > 0) {
        echo "$tireqty tires";
    }

    if ($oilqty > 0) {
        ...
    }

    if ($sparkqty > 0) {
        ...
    }
}

if…elseif…else

if ($tireqty < 10) {
    $discount = 0;
} elseif ($tireqty >= 10 && $tireqty <= 49) {
    $discount = 5;
} elseif ($tireqty >= 50 && $tireqty <= 99) {
    $discount = 10;
} elseif ($tireqty >= 100) {
    $discount = 15;
}

使用这种多条件判断时,我们要注意:

  1. 一般这种,多个条件都应该是互斥的,如果不是,则按顺序走,谁先被判断为true,谁先执行。
  2. 执行了一个if里面的代码块后,其他条件都不会再走了,整个if分支结束了。

switch

在我们的订单页面插入一个广告途径收集的

<tr>
    <td>How did you find Bob's?</td>
    <td>
        <select name="find">
            <option value="a">I'm a regular customer</option>
            <option value="b">TV advertising </option>
            <option value="c">Phone directory</option>
            <option value="d">Word of mouth</option>
        </select>
    </td>
</tr>

订单处理脚本中,可以用switch处理

$find = $_REQUEST['find'];
switch($find) {
    case 'a':
        echo "<p>regular customer.</p>";
        break;
    case 'b':
        echo "<p>customer referred by tv advert</p>";
        break;
    case 'c':
        echo "<p>customer referred by phone directory</p>";
        break;
    case 'd':
        echo "<p>customer referred by word of mouth</p>";
        break;
    default:
        echo "<p>we do not know how this customer fount us</p>";
        break;
}

其实我们也可以看到,上面的例子,用if结构,也完全可以的。

另外,如果 case 中的代码,最后没有给 break,则会直接执行下一个 case 中的代码,直到遇到 break 才会跳出这个 switch

还有,default 也不是必须要写的。

我们再看下一个例子

$week = date('N');
$do   = '';

switch($week) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        $do = "go to work";
        break;
    case 6:
    case 7:
        $do = "go to shopping";
        break;
    default:
        $do = "in home";
}

var_dump($do);

如有任何侵权行为,请通知我删除,谢谢大家!
个人邮箱:865460609@qq.com

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
Junwind
讨论数量: 0
发起讨论 只看当前版本


暂无话题~