上期PHP,我们学会了if判断,今天我们来学switch
看下这串代码:
<?php
$test=1;
switch($test){
case 0:
case 1:
case 2:
case 3:
case 4:
echo 'less';
break;
case 5:
case 6:
case 7:
case 8:
case 9:
echo 'more';
break;
default:
echo 'all not';
break;
}
?>
大家猜一下控制台会打印什么?
很简单。我们定义变量text,switch ($text)就是用text走个流程。当case0/1/2/3/4时,打印less;
当case5/6/7/8/9时,打印more。而break可以结束流程。这样效果就很明显了。
控制台:
>>>less
然后,我就顺便教大家一个小技巧:mt_rand()
<?php
echo mt_rand(1,6)
?>
mt_rand(1,6)就是从1-6随机取数,所以每次打印的东西不同。
为什么要教这个?
这样就可以创作一个简易的骰子游戏。
<?php
$dice_1=mt_rand(1,6);
$dice_2=mt_rand(1,6);
$dice_3=mt_rand(1,6);
$sum=$dice_1+$dice_2+$dice_3;
switch($sum){
case 3:
case 4:
case 5:
case 6:
case 7:
echo 'small';
break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
echo 'middle';
break;
default:
echo 'big';
break;
}
?>
这样,如果三个骰子的和是3~7,就会打印small;如果是8~13,就打印middle;反之(14~18)就会打印big。
怎么样?switch就是这么简单。
但是先别走。
有人问我说怎么把两行输出文字写在两行上?很简单。上一句话打个/n就可(注意必须要是双引号)
没加前:
<?php
echo "一";
echo "二";
?>
>>>一二
加后:
<?php
echo "一\n";
echo "二";
?>
/*如果代码是这样的话:
echo '一\n';
echo '二';
不会生效。因为这里用的是单引号*\
>>>一
二