16.4 比较运算符
循环处理和判断条件需要运用到比较运算符。
比较运算符 | 内容 |
---|---|
a==b | a等于b |
a>b | a大于b |
a>=b | a大于等于b |
a<b | a小于b |
a<=b | a小于等于b |
a<>b | a不等于b |
需要注意,表示相等的运算符为“==”。
16.5 循环处理
16.5.1 通过for循环
语法:
for(初始值;循环条件;增量)
{
循环执行的处理
}
练习:使用for将字符“ * ”反复显示15次。
代码:
<?php
for($i=1;$i<=15;$i=$i+1)
{
print "*";
}
?>
执行结果:
执行流程说明:初始部分$i=1,它表示计数器变量的第一个值是1。循环条件为$i<=15,表示计数器变量$i小于等于15的情况下会循环执行该处理。增量部分$i=$i+1,它表示$i每次增加1,$i=$i+1可以简写成$i=$i++,表示递增。
16.5.2 通过while实现循环
语法:
while(循环条件)
{
循环执行的处理
}
while中没有设置计数器变量初始值的部分,所以我们必须自己设置。而且在循环过程中一定要有不符合循环条件的时候,否则程序会陷入无限循环。
练习:使用while将字符“*”反复显示15次。
代码:
<?php
$i=1;
while($i<=15)
{
print"*";
$i++;
}
?>
执行结果:
16.5.3 通过do...while实现循环
与while不同的是,do...while判断条件的操作是在循环语句之后进行的。
语法:
do
{
循环的处理
}while(循环条件)
练习:使用do...while将字符“*”反复显示15次。
代码:
<?php
$i=1;
do{
print"*";
$i++;
}while($i<=15)
?>
执行结果:
16.6 条件判断
16.6.1 通过if进行条件判断
语法:
if(条件){
符合条件时执行的处理
}
else{
不符合条件时执行的处理
}
对于sles{不符合条件时执行的处理}的部分,如果不需要可以省略。
练习:
<?php
if(200>100){
print"大";
}else{
print"小";
}
?>
16.6.2 三元运算符
语法:(条件)?符合条件的值:不符合条件的值;
练习1:使用三元运算符实现上一节的内容。
代码:
<?php
print (200>100)?"大":"小";
?>
执行结果:
练习2:使用三元运算符实现“上午12点前显示“上午”,否则显示“下午””的示例。
代码:
<?php
print (date("G")<12)?"上午":"下午";
?>
执行结果:
16.6.3 设置了多个条件的if的语法
语法:
if(条件1){
符合条件1时执行的处理
}elseif(条件2){
符合条件2时执行的处理
}elseif(条件3){
符合条件3时执行的处理
}
......
}else{
不符合所有条件时执行的处理
}
设置了多个条件的if会循环执行以下处理:
如果符合条件1,则执行“符合条件1时的处理”,如果不符合则转到下一条;
如果符合条件2.....
......
当所有条件都不符合时,执行“不符合所有条件时执行的处理”
练习:让问候语随着时间发生变化。在0点到6点显示“不困吗?”,在6点到9点显示“早上好!”,在9点到18点显示“你好!”,在18点到0点显示“晚上好!”。
代码:
<?php
if(date("G")<=6){
print"不困吗?";
}elseif (date("G")<=9) {
print"早上好!";
}elseif (date("G")<=18) {
print"你好!";
}else {
print"晚上好!";
}
?>
执行结果:
16.6.4 使用了switch的条件判断
当根据变脸执行不同的处理时,switch比if更容易让人理解。
语法:
switch(变量){
case 变量的值1:
处理1
break;
case 变量的值2:
处理2
break;
......
default:
不符合所有条件时执行的处理
}
练习:10点的时候显示“10点的零食”,在15点的时候显示“3点的零食”,在10点和15点之外的时间显示“这不是零食”。
代码:
<?php
switch (date("G")) {
case '10':
print"这是10点的零食";
break;
case '15':
print"这是3点的零食";
break;
default:
print"这不是零食";
break;
}
?>
执行结果:
16.7 数组
16.7.1 什么是数组
数组:可以存储多个值的特殊变量。
声明数组变量的方法:array
例:将变量$m定义为数组,然后通过下面的方法使其存储大量数据
$m=array("老鼠","牛","老虎","兔子","Dragon");
这样,变量$m中就储存了以上5个字符串,一旦赋了值,PHP就会自动设置数据类型。
从数组中取出各值的方法:
上面示例中的值(字符串)从左到右分别以$m[0]、$m[1]、$m[2]、$m[3]、$m[4]的名称保存了起来。我们可以通过指定名称来取出相应的值。也就是说,执行“print $m[2];”就会输出“老虎”。
我们可以通过[]中的数字判断这是第几号元素的值。写在[]中的数字编号称为下标。下标是从0开始的。
16.7.2 给数组复制的方法
- 直接赋值
例:$m[4]="Gragon";
这种情况下,不论下标的顺序如何,都可以进行赋值。即使像$m[777]="学问"这样使用一些奇怪的下标也没有关系。
- 按顺序赋值
$m[]="老鼠";
$m[]="牛";
$m[]="老虎";
$m[]="兔子";
$m[]="Gragon";
这种方法会按照0、1、2、3、4的顺序进行赋值。
使用数组的示例
使用数组编写16.6.3的例子:
<?php
$m = array("不困吗?","早上好","你好","晚上好");
if (date("G")<6) {
print $m[0];
} elseif (date("G")<9) {
print $m[1];
} elseif (date("G")<18) {
print $m[2];
} else {
print $m[3];
}
?>
执行结果:
16.7.3 关联数组
对于下标,除了可以使用表示顺序的数字之外,还可以使用用户自定义的字符串。这种数组称为关联数组。
例如,我们可以使用保存了考试分数的数组变量来设置直观易懂的下表,例如英语分数可以设置成$t["English"],语文分数可以设置成$t["Chinese"]。
注意:关联数组的下标最好用”或‘括起来。
练习代码如下:
<?php
$t["English"]=73;
$t["Chinese"]=68;
$t["Math"]=84;
print"总分是:";
print $t["English"]+$t["Chinese"]+$t["Math"];
?>
执行结果: