if ( true ) {
//条件为true执行这里的代码
}else {
//条件为false执行这里的代码
}
一、单一条件分支结构(if)
if ( true ) {
//条件为true执行这里的代码
}
a、if 单行执行代码
$drink = true;
if ($drink)
echo '喝酒刺激大脑,白天你一定不能集中精力';
b、if 多行执行代码块
$drink = true;
if ($drink){
echo '喝酒刺激大脑,白天你一定不能集中精力学习';
echo '喝酒伤钱,钱却不是你自己挣多,害臊不';
echo '还是一个字:严厉打击,在学习期间,酗酒,夜不归宿的同志';
}
双向条件分支 (else/else:)
$t=date("H");
if ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
/*******************************/
$var = '00abc';
if( is_numeric($var) ):
echo 'true';
else:
echo 'false';
endif;
多向条件分支结构(elseif)
需要做出多个决定,这些决定可能有多于两个的选项。
1、在elseif语句中同时只能有一个表达式为true 2、总是有先把包含范围小的条件放在前面处理
$a = 0;
if( $a >0 && $a<60 ){
echo '成绩不及格';
}elseif ($a>=60 && $a<=90){
echo '继续努力';
}elseif( $a > 90 && $a <=100 ){
echo '非常棒,继续加油';
}else{
echo '你的成绩有问题啊';
}
工作中注意点
在函数或类中使用if/else
之时,有个常见的误解---else
必须一起使用以声明潜在的结果。然而,如果,结果是定义返回值,则'else'是不需要的,因为'return'会结束函数,使得else
变得毫无意义。
function test($a)
{
if ($a) {
return true;
} else {
return false;
}
}
vs.
function test($a)
{
if ($a) {
return true;
}
return false; // 不需要else分支
}
多向(switch)
Switch语句是一种避免输入无穷尽的if和elseif的绝妙方式,但需要注意几点:
- Switch语句仅比较值,并不关心类型(等价于'==')
- 逐个分支地迭代直到找到一个匹配项。如果没找到匹配项,则使用缺省(default)分支(如果定义了)
- 若匹配项的代码体没有'break'语句,则会继续执行接下来的每个分支,直到遇到一个break/return语句
- 在函数内,使用'return'可以减少'break'的使用,因为'return'能够结束函数
- default 不是必须的,可以省略。
$answer = test(2); // 'case 2'和'case3'的代码体会得到执行
function test($a)
{
switch ($a) {
case 1:
// code...
break; // break用于结束switch语句
case 2:
// code... // 没有break,继续比较'case 3'
case 3:
// code...
return $result; // 当前位置在函数内,'return'会结束函数
default:
// code...
return $error;
}
}