发新话题
打印

第十五课:选择控制

本主题由 robin 于 2007-11-24 16:19 移动

第十五课:选择控制

第十五课:选择控制



  选择控制实际上就是分支控制,它使得语句执行过程中会出现分支,根据条件判断选择其中其一分支往下执行。在PHP中,它提供了两种语句来实现选择控制:一种是if...else...,一种是switch语句。

  下面用一个实际例子来说明switch语句的用法:在一些论坛上,往往会给不同级别的会员授予1颗到9颗不等的星星。怎样写这段代码呢?看下面的例子15-1:

复制内容到剪贴板
代码:
<?php



switch( @$_POST['level'] ) {



  case 0 : break;

  case 1 : echo '<font color=#ff0000>★</font>';  break;

  case 2 : echo '<font color=#ff0000>★★</font>';  break;

  case 3 : echo '<font color=#ff0000>★★★</font>';  break;

  case 4 : echo '<font color=#ff0000>★★★★</font>';  break;

  case 5 : echo '<font color=#ff0000>★★★★★</font>';  break;

  case 6 : echo '<font color=#ff0000>★★★★★★</font>';  break;

  case 7 : echo '<font color=#ff0000>★★★★★★★</font>';  break;

  case 8 : echo '<font color=#ff0000>★★★★★★★★</font>';  break;

  case 9 : echo '<font color=#ff0000>★★★★★★★★★</font>';  break;

  default: break;



}



?>



<form method="POST" action="#">

  <p>会员级别:<input type="text" name="level" size="20"></p>

  <p><input type="submit" value="提交" name="B1"></p>

</form>

switch语法表达式为:
复制内容到剪贴板
代码:
<?php

switch(expression0){



  case expression1 :

    statement1;

    break;

  case expression2 :

    statement2;

    break;

  case expression3 :

    statement3;

    break;



  ......



  default:

    statementN;

    break;

}



?>
其中,expression0,expression1,expression2......可以是一个变量常量或者表达式,当程序执行到switch语句时,它会分别把expression0expression1expression2...作比较,当两表达式数值相等时,就会执行相应case语句。default是默认的分支语句,可以匹配其它分支没有匹配的事情,你也可以忽略它。

  注意:要使用语句 break来跳出switch,否则,PHP会执行完一个case语句,会继续执行下一个case语句,从而造成多个选择分支被执行。

  在例子15-1中,switch会获取$POST['level']的值,如果其值等于0,就会执行与之相应的第一条case语句,如果其值等于1就会执行第二条case语句…

  switch的用法你掌握了吗?下面出一道作业来结束本课:编写一段由下拉列表选择名人,从而显示该名人名言的程序。

交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

我把你留的作业写完了

首先建立一个.HTML文件,我这里建的是example.html  代码如下:
复制内容到剪贴板
代码:
<form method="POST" action="example.php">
<table>
<tr>
<td>请选择一位名人</td>
<td><select name = "name">
  <option value = "a">张曼玉</option>
  <option value = "b">成龙</option>
  <option value = "c">河莉秀</option>
  <option value = "d">梦幻帐</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value = "提交" ></td>
</tr>
</table>
</form>
然后再建个.php的文件,我建的是example.php,代码如下:
复制内容到剪贴板
代码:
<?php
$name = $_POST['name'];
if($name == 'a')
  echo "我是女人<br>";
elseif($name == 'b')
  echo "我是男人";
elseif($name == 'c')
  echo "我曾经是男人";
elseif($name == 'd')
  echo "你可以没有处女的膜,但你不能没有处女的心";
?>
用IE打开example.html即可。写的不好多指点!

TOP

评语:
IF逻辑有问题
看看你的if 最后面的else呢??到哪里去了?
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

噢,忘记了

最后那个应该换成,
else($name == 'd')
  echo "你可以没有处女的膜,但你不能没有处女的心";

这样就对了吧

TOP

交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

呵呵,经典啊。。谢谢

TOP

学习~努力~加油~永不放弃

TOP

123.htm
====================
<html>
<form name="form1" method="post" action="123.php">
  <p>
    <select name="select">
      <option value="1">Jusitfy</option>
      <option value="2">Desperate Religion</option>
      <option value="3">Feel Alive</option>
      <option value="4">Renegade</option>
      <option value="5">Made of Glass</option>
    </select>
</p>
  <p>
    <input type="submit" name="Submit" value="Submit">
</p>
</form>

</body>
</html>

=========================
123.php
=========================
<?
switch($_POST["select"]){
    case "1" : echo "i can/'t justify one more time";break;
    case "2" : echo "give me just a little bit";break;
    case "3" : echo "i feel so alive";break;
    case "4" : echo "renegade like you";break;
    case "5" : echo "we are made of glass";break;
    default : break;
}
?>
================================

做对了,发帖庆祝下
Remember the day.

TOP

交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

引用:
原帖由 梦幻帐 于 2007-9-4 22:04 发表
最后那个应该换成,
else($name == 'd')
  echo "你可以没有处女的膜,但你不能没有处女的心";

这样就对了吧
我认为

你这样写还是错的,应是
else
  echo "你可以没有处女的膜,但你不能没有处女的心";
end if

TOP

发新话题