条件结构 — if{...}else{...}
条件结构就像一个岔路口,可以向左走,也可以向右走。
比如上洗手间,我们知道我们的性别,这时候我们需要根据洗手间提供的条件,左边男洗手间,右边女洗手间,或者正好相反,其中性别就是这个条件结构的条件。
再比如,现在的分数都流行使用A、B、C来分级,假设考试成绩是93分,可以将其设置为等级A,考试成绩是87,可以将其设置为等级B,这里分数区间即为条件结构中的条件。
PHP中的“if…else…”语法,如下:
<?php if(条件){ //分配服务器干的任务A }else{ //分配服务器干的任务B } ?>
通过条件判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则执行任务B。
PHP中的“if{…}else if(){…}”语法,如下:
<?php if(条件一){ //分配服务器干的任务A }else if(条件二){ //分配服务器干的任务B } ?>
通过条件一判断,若返回值为布尔值为TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B。
服务器会继续往下执行其他任务。
PHP中的“if(...){…}else if(...){…}else{…}”语法,如下:
<?php if(条件一){ //分配服务器干的任务A }else if(条件二){ //分配服务器干的任务B }else{ //分配服务器干的任务C } ?>
通过条件一判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B,执行任务C。
PHP中的“switch...case...”语法,如下:
<?php switch (条件) { case 条件值一: //任务一 break; case 条件值二: //任务二 break; default: //默认任务 } ?>
首先判断条件,若条件的返回值为条件值一,则执行任务一,若条件返回的值为条件值二,则执行任务二,若条件的返回值既不是条件值一也不是条件值二,则执行默认任务。break的作用是结束switch(后面会有专门举例说明),使用 switch 语句可以避免冗长的 “if..else if..else”代码块。
循环结构就像一圈圈地跑足球场,跑完一圈再跑一圈。
也就是说,在符合的条件下,重复执行某项任务。像400米一圈的跑道,跑800米的话就跑2圈,当跑完第一圈接着跑第二圈,第二圈结束已经达到800米,终止跑步。
在PHP中,while循环语句如下:
<?php while(条件){ //执行任务 } ?>
首先判断某个条件是否符合(条件返回值是否为TRUE),若符合则执行任务,执行完毕任务,再判断条件是否满足要求,符合则重复执行此任务,否则结束任务。
在PHP中循环语句还有另一种:do...while循环语句语法如下:
<?php do{ //执行任务 }while(条件) ?>
首先执行任务(上一节的while语句是先判断条件是否成立,再执行任务),执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续判定条件。
while与do…while循环语句的区别是:
while先判断条件是否成立,后执行循环;
do...while先执行一次任务,再判断是否继续执行循环;
也就是说do...while至少会执行一次任务。
当条件为FALSE时,while中的任务会一次也不执行,do...while中的任务会执行1次。
while和do...while可以根据具体情况选用。
假设有一种棋类游戏,首先掷骰子,若不为6,前进骰子的点数的步长;
若为6,前进骰子的点数的步长,并可以再掷一次。
从代码的结构和可读性角度,在该例子中使用do...while更合适。
在PHP中还有一种循环语句,for循环语句结构如下:
<?php for(初始化;循环条件;递增项){ //执行任务 } ?>
for 语句中,“初始化”在循环开始前无条件求值一次,“循环条件”在每次循环开始前求值。
如果值为 TRUE,则继续循环,执行循环体语句(执行任务)。
如果值为 FALSE,则终止循环。“递增项”在每次循环之后被求值(执行)。
其常用于循环执行代码块指定的次数。
在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式 : 不取下标、取下标。
(1)只取值,不取下标
<?php foreach (数组 as 值){ //执行的任务 } ?>
(2)同时取下标和值
<?php foreach (数组 as 下标 => 值){ //执行的任务 } ?>
(1)不取下标的数组遍历
(2)取下标的数组遍历
本文出自 “我是一名phper,简单而天真” 博客,请务必保留此出处http://thinkforphp.blog.51cto.com/8733331/1784628
原文地址:http://thinkforphp.blog.51cto.com/8733331/1784628