PHP 中关于switch语句的疑问

chraaa 2005-01-11 02:04:01
我写了一个PHP文件如下:
<?php

$id="onload";
switch($id) {

case "onload":
idm_Onload();

case "end":
idm_end($name);
break;

}

function idm_Onload() {

echo 'this is onload';
}

function idm_end($name) {

echo 'this is the end';
}
?>


但是用IE访问的结果却是:
this is onloadthis is the end

怎么switch下的case都执行了呢?


为什么????????
...全文
149 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chraaa 2005-01-12
  • 打赏
  • 举报
回复
switch($id) {

case "onload":
idm_Onload();

case "end":
idm_end($name);
break;

}


但是这两个分支有交叉吗?
程序猿之殇 2005-01-12
  • 打赏
  • 举报
回复
看来楼主应该多看看如果中断了。
比如像for while等循环语句都有中断。
Meteorlet 2005-01-12
  • 打赏
  • 举报
回复
一看就是没学过c的,这样是有好处的,特别是两个分支交叉的时候
mrshelly 2005-01-12
  • 打赏
  • 举报
回复
不是吗??????

chraaa 2005-01-12
  • 打赏
  • 举报
回复
C语言中的switch - case 语句也是这样的吗?
surfchen 2005-01-11
  • 打赏
  • 举报
回复
需要理由吗?
ice_berg16 2005-01-11
  • 打赏
  • 举报
回复
继续往下走的意思不是跳出switch,而是接着执行下一个case
lawyu 2005-01-11
  • 打赏
  • 举报
回复
没有 break当然是顺序执行了,所以两个函数都执行了一次
chraaa 2005-01-11
  • 打赏
  • 举报
回复
谁能给我一个理由?
chraaa 2005-01-11
  • 打赏
  • 举报
回复
是继续往下走,但是怎么能走出这种结果呢????
jxflll 2005-01-11
  • 打赏
  • 举报
回复
如果不加break,它会继续向下走。你如果改成这样,输出就应该正确了。
<?php

$id="onload";
switch($id) {

case "end":
idm_end($name);

case "onload":
idm_Onload();
break;

}

chraaa 2005-01-11
  • 打赏
  • 举报
回复
我知道要加break,但是为什么不加break的时候结果会是那样?

怎么才能解释清楚???
多菜鸟 2005-01-11
  • 打赏
  • 举报
回复
头一个CASE少了一个break,我试试看。
skyboy0720 2005-01-11
  • 打赏
  • 举报
回复
switch($id) {

case "onload":
idm_Onload();
break;
case "end":
idm_end($name);
break;

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧