php基础教程 第五步 逻辑控制
逻辑判断
在开发项目时,竟然会出现逻辑控制。例如当用户输入“hello”时你需要自动回复“hello 欢迎”,当用户设置的定时时间到达时,你需要提醒用户时间已经结束;再举个例子,在玩网络游戏时,用户控制的角色被攻击,角色需要减掉相应的HP(血量),用户释放技能时需要减掉相应的MP(魔法值),这些都需要使用逻辑去进行判断,从而减掉相应的值。
这些都是逻辑判断,在php中使用 if 条件语句进行逻辑判断。
if 语句
if语句的语法如下:
<?php
if(条件)
{
条件判断正确在此处输入需要执行的代码;
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
以上代码中,if是关键字,关键字是在代码中已经设定了有特殊作用的标识,if是用作条件判断,则if是个关键字。例如先前我们使用过的echo 也是关键字。
查看以上代码的格式标准发现,if后面紧跟着一对圆括号,圆括号中间需要添加条件。这个条件可以是一个表达式(表达式指一个运算组合使用有意义的排列并且有最终值的一个组合,例如1+1、2+2等),或者是一个值。条件例如 1==1、1>2 或者有一个变量a值为1,有一个变量值为2,可以为$a>$b 。
在编写完条件后,使用了一堆花括号{},花括号中编写当条件正确时执行的代码。
查看以下示例方便理解if语句:
<?php
if(2>1)
{
echo '2比1大';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
以上代码中,使用if语句,在条件中添加 2>1,如果2>1条件成立,那么输出2比1大。这个条件显然是成立的,我们输入localhost\index.php 访问网站根目录下的index.php文件(注意一定要开启服务),因为我这个代码编写的文件名为index.php,并且放在了根目录下。
运行结果如下:
由于条件成立,所以输出了2比1大。这个时候更改条件改为 1>2,代码如下:
<?php
if(1>2)
{
echo '2比1大';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
这个时候条件 1>2 明显是错的,条件不成立,则不会执行第一个花括号{}里面的代码,所以当我们访问该php文件时,并不会输出任何的值:
if else 语句
以上示例中,如果条件判断错误,不成立并不能提示输出情况这时可以使用else语句。
else语句用来说明当if条件判断不成立后,执行的代码语句。
查看以下示例可以直观的了解:
<?php
if(1>2)
{
echo '2比1大';
}else{
echo '2比1大 判断错误';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
以上代码多了else语句。在第一个花括号{}后面,增加了一个else进行相连,并且在else后添加了一个花括号,在花括号中编写了 echo '2比1大 判断错误';
这一条代码。这条代码显示了 2比1大 判断错误
这一条信息。当if条件判断错误,那么则会执行该语句进行显示。
运行结果如下:
在if语句以及if…else 语句中,不同条件下所执行的语句并不止是一条,可以多条。
示例如下:
<?php
if(1>2)
{
echo '判断正确 ';
echo '2比1大';
}else{
echo '判断错误 ';
echo '2比1大';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
以上程序示例均在不同的判断结果中编写了多条语句,这些语句都会执行。
在if 语句中,只执行一个程序块,并不会对错都执行。
在if 语句中,可以使用变量作为条件判断,示例如下:
<?php
$a=3;
$b=5;
if($a>$b)
{
echo '判断正确 ';
echo $a.'比'.$b.'大';
}else{
echo '判断错误 ';
echo $a.'比'.$b.'小';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
以上程序示例中,声明且定义了两个变量,一个是a还有一个是b,在条件判断中,判断变量a是否大于b,如果正确则输出第一个if花括号里面的程序,如果输入错误则会执行第二个花括号里面的值。
并且输出的时候使用变量直接输出,使用点 . 运算发连接他们。
结果如下:
多条件的if语句
或运算||
在if语句中的条件,可以设置为多个,例如我想判断变量a是否大于b或者a是否等于3这个条件,只要满足其中之一都算对。可以写为如下示例:
<?php
$a=3;
$b=5;
if($a>$b||$a==3)
{
echo '判断正确 ';
echo $a.'比'.$b.'大 或者变量a 等于3';
}else{
echo '判断错误 ';
echo $a.'比'.$b.'小';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
以上代码中,在if条件内进行了更改:$a>$b||$a==3
需要注意的是,里面多了一个没有见过的运算符号 ||
,这个符号的作用是或运算,或运算则表示左右两边有一个正确,那么整个条件判断都为正确。
左边是 $a>$b,如果成立,即使$a不等于3也算整个表达式正确。
右边是 $a==3,如果左边的条件错误,整个判断都算正确。
结果如下:
当然可以使用多个或运算,如下:
<?php
$a=4;
$b=5;
if($a>$b||$a==3||$a==4)
{
echo '判断正确 ';
echo $a.'比'.$b.'大 或者变量a 等于3、4';
}else{
echo '判断错误 ';
echo $a.'比'.$b.'小';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
在if条件的判断中,多了一个$a==4,判断a是否等于4,即使其它条件错误,只要a等于4那么整个表达式都将会正确。
和运算&&
和运算&&必须所有条件都满足正确,整个表达式才都正确。例如如下代码:
<?php
$a=11;
$b=5;
if($a>$b&&$a==11)
{
echo '判断正确 ';
echo $a.'比'.$b.'大 并且等于 11';
}else{
echo '判断错误 ';
echo $a.'比'.$b.'小';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
以上代码中把a变量的值更改为了11。在条件判断中,必须满足a变量大于b变量,且a必须是11整个表达式才算正确,他们两个表达式之间使用 && 进行相连。结果如下:
if…elseif…else语句
当我们需要判断多个条件时需要使用if…elseif 语句进行判断。
例如 天气下雨的时候我在家看电视、天气刮风的时候我出门吹风、天气大太阳的时候我就晒衣服。
代码示例如下:
<?php
$a='天气大太阳';
if($a=='天气下雨')
{
echo '我在家看电视';
}elseif($a=='天气大太阳'){
echo '我晒衣服';
}elseif($a=='天气刮风'){
echo '我出吹风';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
以上代码有一个变量a,值为天气大太阳。
使用if判断,a变量等于天气下雨,我就在家看电视;天气大太阳我就晒衣服;天气刮风我就出门吹风。
elseif 则是使用在多个条件判断时,当满足不了其一,那么就接下去进行判断,直到找到符合条件成立的模块代码,随后执行。如果都没有找到条件成立的代码,那么这个if条件语句将什么都不执行。
结果如下:
万一什么条件都不执行,我想需要一个状态进行表示。当条件都不满足,那么我就什么都不做,只需要添加else部分即可,例如如下代码示例:
<?php
$a='天气下冰雹';
if($a=='天气下雨')
{
echo '我在家看电视';
}elseif($a=='天气大太阳'){
echo '我晒衣服';
}elseif($a=='天气刮风'){
echo '我们出吹风';
}else{
echo '我什么都不做';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
以上代码a变量的值为下冰雹,我在状态设计时并没有编写该状态对应的处理流程,那么我将执行else区域代码,显示 我什么都不做。
结果如下:
if语句嵌套
if语句是可以嵌套的,如下代码:
<?php
$a='天气下冰雹';
$b='我妈不给我出门';
if($a=='天气下冰雹')
{
echo '天气下冰雹了';
if($b=='我妈给我出门'){ echo '出门玩';
}else{ echo '我妈不给我出门';
}
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
以上代码中if语句判断a变量是否等于下冰雹,如果下冰雹,那么显示 天气下冰雹了。之后在当前if语句的花括号{}内,还添加了一段代码,是if语句,判断b变量是否是我妈给我出门,如果是我妈给我出门,那么就显示出门玩,如果不是,那么就是我妈不给我出门玩。
结果如下:
php 文章持续更新中,欢迎关注、点赞、收藏、转发。
文章来源: i1bit.blog.csdn.net,作者:A757291228,版权归原作者所有,如需转载,请联系作者。
原文链接:i1bit.blog.csdn.net/article/details/107306149
- 点赞
- 收藏
- 关注作者
评论(0)