• 技术文章 >php教程 >php手册

    php中switch语句的用法介绍

    2016-06-13 10:14:53原创399
    本文章详细的介绍了switch语句在php中用法,以及switch case在条件为0时的处理办法,有需要了解的同学可以参考一下。

    Switch 语句
    如果您希望有选择地执行若干代码块之一,请使用 Switch 语句。

    使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。

    语法

    代码如下 复制代码
    switch (expression)
    {
    case label1:
    code to be executed if expression = label1;
    break;
    case label2:
    code to be executed if expression = label2;
    break;
    default:
    code to be executed
    if expression is different
    from both label1 and label2;
    }

    实例
    工作原理:

    对表达式(通常是变量)进行一次计算
    把表达式的值与结构中 case 的值进行比较
    如果存在匹配,则执行与 case 关联的代码
    代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
    如果没有 case 为真,则使用 default 语句

    代码如下 复制代码

    switch ($cps_sign) {
    case 'yiqifa':
    case 'chengguo':
    case 'roiyiqifa':
    case 'lkt':
    case 'fanli':
    case 'qqfanli':
    case 'weiyi':
    case 'yoyi':
    $sql = "INSERT into sa_cps_list (`uv`,`s_time`,`cps`,`url`) VALUES ('{$uv}',{$timestamp},'{$cps_sign}','{$url}')";
    echo $sql;exit();
    mysql_query($sql);
    break;
    default:
    break;
    }


    仔细看了一下程序,莫非是switch和case惹的祸?于是,写DEMO检测。
    //输出结果为:bool(true) bool(false) xxx

    代码如下 复制代码

    var_dump(""==0);
    var_dump(""===0);

    $errid = '';
    switch ($errid) {
    case 0 :
    echo "xxx";
    break;
    default:
    echo "yyy";
    }

    真相大白了,原来 switch/case结构中,比较case值用的是==而不是===。这样,空就和0相等了,我收到的结果也当然就是错误的了。
    没办法,程序不想改,毕竟多条件的时候switch/case要比一堆if让人看着舒心。想办法吧。呵呵。

    代码如下 复制代码

    $result = '';
    if(is_numeric($err_id) === false) {
    $result .= '宕机或超时,没有返回值';
    return $result;
    }
    switch ($err_id) {
    case xxx :
    ..........
    }

    问题解决了,先判断一下返回值是否是数值,如果不是数值的话,直接return。
    以后写switch/case判断数字的时候一定要小心,尤其是有0这个败家值存在的时候

    switch 语句和 elseif 语句的比较
    在 switch 语句中,条件只求一次,然后和每个 case 比较,而在 elseif 语句中,条件会再次求值。如果你的条件比较复杂,或者是多次循环,用 switch 语句速度会更加快些

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php删除字符串最后一个字符程序代码 下一篇:php rand() 随机数生成的方法介绍
    千万级数据并发解决方案

    相关文章推荐

    • PHP动态网页实现静态HTML技术的方法实现• 开发大型PHP项目的方法(一)• 简化的实现方法(限制为同一会话页面)• php中的网页重定向原创• 投票管理程序_php基础
    1/1

    PHP中文网