免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3636 | 回复: 9
打印 上一主题 下一主题

问题讨教 关于从 switch 跳出 if [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-06 16:15 |只看该作者 |倒序浏览
关于从 switch 跳出 if

if($condition){
switch($condition){
    case 'one':
         $some_variable = "some value";
        break;
     case 'two':
      $some_variable = "some value else";  
     break;
    default:
    //什么代码能跳出 if
}
//当$condition不是 'one' 或 'two' 的时候 不想执行的代码
//some code
}

谢谢。
不是在线等,大家一起讨论一下,debug一下

论坛徽章:
0
2 [报告]
发表于 2007-04-06 17:24 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2007-04-06 21:42 |只看该作者

  1. $condition = "three";
  2. $flag = -1;
  3. while ($flag++ && $condition)
  4. {
  5.     switch ($condition)
  6.     {
  7.         case 'one':
  8.             $some_variable = "some value";
  9.             break;
  10.         case 'two':
  11.             $some_variable = "some value else";
  12.             break;
  13.         default:
  14.             // 什么代码能跳出 if
  15.             break 2;
  16.     }
  17.     // 当$condition不是 'one' 或 'two' 的时候 不想执行的代码
  18.     // some code

  19.         echo $some_variable;
  20. }
复制代码




[ 本帖最后由 HonestQiao 于 2007-4-10 09:17 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-04-07 00:04 |只看该作者
其实以上的方法我也想到了。
这段代码是用来处理文件上传的表单。

  1. unset($ErrCode);
  2. if($_FILES['picture']){
  3.    switch($_FILES['picture']['type']){
  4.         case 'image/gif':
  5.              $file_ext ='gif';
  6.              break;
  7.      case 'image/jpeg':
  8.              $file_ext='jpg';
  9.              break;
  10.      default:
  11.            $ErrCode = 'filetype';
  12.     }
  13.     if(!$ErrCode){
  14.      //正常处理方法
  15.    }
  16. }
  17. //some code
  18. //集中处理错误的代码
复制代码

论坛徽章:
0
5 [报告]
发表于 2007-04-09 10:51 |只看该作者
break跳出不就行了

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2007-04-09 11:56 |只看该作者
原帖由 ashchen 于 2007-4-9 10:51 发表
break跳出不就行了


break可以出switch,但是不能出if

论坛徽章:
0
7 [报告]
发表于 2007-04-10 00:39 |只看该作者
一定要跳出就改用 do { if (!<COND>) break; ......  } while (false);  的结构

然后再在里面搞 break 2; 即可?

论坛徽章:
0
8 [报告]
发表于 2007-04-10 09:38 |只看该作者
unset($ErrCode);
$flag=true;
if($_FILES['picture']&&$flag){
   switch($_FILES['picture']['type']){
        case 'image/gif':
             $file_ext ='gif';
             break;
     case 'image/jpeg':
             $file_ext='jpg';
             break;
     default:
           $ErrCode = 'filetype';
    }
    if(!$ErrCode){
     $flag=false;
     //正常处理方法
   }
}
//some code
//集中处理错误的代码

论坛徽章:
0
9 [报告]
发表于 2007-04-10 12:46 |只看该作者
来这里果然能尝到不少东东

论坛徽章:
0
10 [报告]
发表于 2007-04-11 07:15 |只看该作者
原帖由 gh520 于 2007-4-10 09:38 发表
unset($ErrCode);
$flag=true;
if($_FILES['picture']&&$flag){
   switch($_FILES['picture']['type']){
        case 'image/gif':
             $file_ext ='gif';
             break;
     c ...


多加了$flag 变量。其实我在4楼写的代码已经能通过,我想知道有没有更高效的语句。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP