在本PHP指南中,我们将了解PHP中的条件语句。条件语句—也称为条件语句、条件表达式或条件构造—是一组在每种编程语言中都可以找到的编程特性。条件语句的一个例子是如果声明。
PHP中有几种条件语句,由程序员决定在给定情况下采用哪种方法。为了充分利用本指南,你应该已经阅读了以下内容:
简介
一个条件语句,本质上,它帮助程序根据条件的评估方式决定采取哪条路径。条件语句被计算为真或假。
最简单的条件语句是an如果声明。例如,如果现在是早晨,太阳正在升起。
建筑条件基础
有两个基本概念可以帮助您构建条件。第一个概念是条件总是返回true或false。
第二个概念是,只要某个东西有(或返回)一个值——PHP中几乎所有东西都有——它就可以在条件中使用。让我们从一个基本的例子开始player_name美元
=弗莱迪.为了确定如何评估我们的条件,我们将使用var_dump ()
,我们在PHP变量指南查看变量和数组中的值。
<?php $player_name = 'Nathan';var_dump ($player_name == 'Freddy');?>
该条件可以翻译成英文为:$player_name变量是否等于Freddy?在这种情况下,var_dump ()
将打印假
因为player_name美元
等于内森.
比较运算符
的= =
之间的$player_name == 'Freddy'
叫做比较运算符.更具体地说,它是平等的比较运算符。
比较运算符在两个值之间进行比较。它是条件陈述句的面包和黄油,因为它是你建立条件的基础。PHP中所有可用的比较运算符可以在下表中找到。
的官方PHP文档比较运算符.在继续讨论之前,请先看一下这张桌子。
例子 | 的名字 | 结果 |
---|---|---|
$a = $b | 平等的 | 真正的 如果美元一个 等于b美元 . |
$a == $b | 相同的 | 真正的 如果美元一个 等于b美元 ,且变量类型相同。 |
$a = $b | 不平等的 | 真正的 如果美元一个 不等于b美元 . |
$a <> $b | 不平等的 | 真正的 如果美元一个 不等于b美元 . |
$a != $b | 不完全相同 | 真正的 如果美元一个 不等于b美元 ,或者它们不是相同的变量类型。 |
$a < $b | 不到 | 真正的 如果美元一个 小于b美元 . |
$a > $b | 大于 | 真正的 如果美元一个 大于b美元 . |
$a <= $b | 小于或等于 | 真正的 如果美元一个 小于或等于b美元 . |
$a >= $b | 大于或等于 | 真正的 如果美元一个 大于或等于b美元 . |
组合多重比较
假设您有一个输入字段,用户需要在其中输入0到11之间的值(即。
1 - 10是有效的输入)。你把它们的输入输入到一个叫美元的评级
.用户输入-3 so美元的评级
等于-3。对于条件(也称为a),我们有两个必须为真的比较比较表达PHP中)是正确的。首先,它必须大于0。其次,它必须小于11。下面是我们如何写比较表达式:
<?PHP $rating = -3;var_dump ($rating > 0 && $rating < 11);//输出false
的& &
在两个比较之间被称为a逻辑运算符。逻辑运算符允许我们在比较表达式中进行多次比较。上面的逻辑运算符称为和逻辑运算符。逻辑运算符有四种类型:和,或,Xor,不.
在上面的例子中,我们的英语比较表达式翻译为:$rating是否大于0而且$评级是否小于11 ?自美元的评级
是-3,尽管它对第二次比较的结果为真($rating < 11
),则第一个值为false ($rating > 0
),因此整个比较表达式为假,因为两个比较都不为真。如果你想让条件值为真,如果只有一个比较为真呢?我们可以用或逻辑运算符,用||表示。
假设我们有一个输入字段,允许用户输入位置(比如欧洲的一个城市)。如果他们输入,我们希望条件为真柏林或阿姆斯特丹.让我们假设他们进来了柏林你把输入值放到一个叫美元的位置
.
下面是我们如何编写上面所述的条件表达式:
<?php $location = '柏林';var_dump ($location == '柏林' || $location == '阿姆斯特丹');> . // true
上面的条件表达式为真,因为美元的位置
等于柏林.不像和逻辑运算符或逻辑运算符将计算一个条件为真,即使只有一个比较为真。如果用户输入芝加哥,则上述条件将为假,因为芝加哥既不柏林也不阿姆斯特丹.
下面的表格列出了PHP中的所有四个逻辑运算符。& &
而且||
也可以写成而且
或或
.然而,最好的做法是直接使用& &
而且||
标准化。
的官方PHP文档逻辑运算符.
例子 | 的名字 | 结果 |
---|---|---|
$a和$b | 和 | 真正的 如果两个美元一个 而且b美元 是真的。 |
$a或$b | 或 | 真正的 如果任何一美元一个 或b美元 是真的。 |
$a xor $b | Xor | 真正的 如果任何一美元一个 或b美元 这是事实,但并非两者兼而有之。 |
一个美元! | 不 | 真正的 如果美元一个 不是真的 |
$a && $b | 和 | 真正的 如果两个美元一个 而且b美元 是真的。 |
$a || $b | 或 | 真正的 如果任何一美元一个 或b美元 是真的。 |
条件语句
PHP中的条件语句是如果,其他的,elseif,开关.让我们每一个都过一遍。
if语句
的如果语句是许多编程和脚本语言的基本构建块- PHP也不例外。与如果语句,开发人员就能够创建简单的控制结构。一个如果语句可读为:如果条件为真,执行这个,否则忽略这个。下面是一个输出赋值字符串的示例美元的消息
.
如果美元的名字
等于弗莱迪,此脚本将打印嗨弗雷迪!如果美元的名字
不等于弗莱迪,它将简单地打印好名字!
<?php $name = 'Nathan';$message = '好名字!';if ($name == 'Freddy') {$message = 'Hi Freddy!';}echo $消息;?>
如上所示,我们可以根据比较表达式的结果执行不同的操作。在这种情况下,如果美元的名字
等于弗莱迪,然后我们改变的值美元的消息
;否则我们继续,保持的值美元的消息
相同的。花括号中的代码({…}
的表达式时,将被处理如果语句的结果为true。
如果您只有一个表达式要执行(例如,只有一行代码,由;
在最后)。然而,使用花括号通常被认为可读性更好。
没有花括号,我们可以重写上面的例子如下:
<?php $name = 'Nathan';$message = '好名字!';if ($name == 'Freddy') $message = 'Hi Freddy!';echo $消息;?>
最后一点:如果语句可以嵌套在其他语句中如果语句。利用嵌套如果语句将为脚本的各种代码路径的条件执行提供最终的灵活性。在下面的嵌套中如果语句示例,我们使用日期()
函数获取一天中的时间(以24小时格式)。
如果美元的名字
等于弗莱迪,美元的消息
值将更改为下午好或晚上好,Freddy!.之后,它还计算如果语句嵌套在其中。如果美元的时间
小于12(即
在1点到12点之间),然后美元的消息
又会不会改说早上好,弗雷迪!.如果美元的名字
不是弗莱迪第一个里面什么都没有如果语句将执行,这也意味着嵌套如果语句将不求值。
<?php $time = date(H);//获取24小时格式的时间$message = '好名字!';if ($name == 'Freddy') {$message = '下午好或晚上好Freddy!';if ($time < 12) {$message = '早上好Freddy!';}} echo $message;?>
else语句
的其他的语句扩展了如果声明。
因为其他的语句不能保存比较表达式,只能与比较表达式结合使用如果声明。的其他的语句执行代码,如果如果语句的比较表达式的结果为false。下面是一个根据值的不同表现不同的示例美元的评级
:
<?PHP $rating = -3;if ($rating > 0 && $rating < 11) {echo '感谢您的评级!';}else {echo '此评级无效。';}?>
Self-quiz # 1:什么回声在上面的代码块中输出?
(见下面的答案)。就像如果语句,其他的语句可以嵌套在其他语句中如果声明:
<?PHP $rated = false;$rating = 8;if ($rating < 0 && $rating > 10) {echo '此评级无效,请重试。';} else{//用户已经在过去评级if ($rated) {echo '你不允许评级两次';}else {// Store rating echo '谢谢你的评级!';$rated = true;}} ? >
三元运算符
的三元运算符在PHP中是一个条件操作符,它遵循if/else控制结构。当您编写if/else语句将值赋给变量时,可以使用它作为简写。三元运算符的结构如下:
$foo = ((条件表达式)) ?[value如果为真]:[value if false];
这是一个if/else控制结构b美元
的值的字符串值美元一个
-之后我们将把下面的代码转换为三元运算符。
<?php if ($a < 0) {$b = '苹果';} else {$b = '香蕉';} ? >
上面的控制结构可以使用三元运算符重写:
<?PHP $b = ($a < 0) ?“苹果”:“香蕉”;?>
elseif语句
的elseif语句扩展了其他的语句,这样它就可以有一个比较表达式。
如果elseif条件为真,它将(就像如果语句)执行花括号内的语句。你可以添加很多elseif对如果随你怎么说。你也可以有其他的语句的末尾作为一个集合时如果语句和elseif所有语句的值都是false。
如果没有其他的语句在控制结构的末尾,PHP只是继续。下面的例子是访问网页的简化控制结构。让我们假设您已经询问了网站访问者的用户名和密码,以查看他或她是否可以访问一个网页。
我们还假设您将用户名和密码存储在变量中美元的用户名
而且美元的密码
.但是,我们只有三种用户名/密码组合可以访问此页面。其他人将被拒绝访问(即。
$access = false
).
<?php $username = 'Freddy';$password = '星际迷航';$access = false;if ($username == 'Nathan' && $password == 'hibernate') {$access = true;}elseif($username = 'admin' && $password == 'xTRzz99') {$access = true;}elseif($username == 'Freddy' && $password == 'starwars') {$access = true;} else {$access = false;} ? >
Self-quiz # 2:价值是什么美元的访问
在上面的脚本运行之后?(见下文答案)注意,在PHP中,您也可以编写其他的如果(两个词)而不是elseif.
行为会和elseif.语法意义略有不同,但您可以假设两者会导致完全相同的行为。最佳实践建议使用elseif在其他的如果.
switch声明
的开关语句用于根据许多不同的值检查变量(或比较表达式)。开关语句通常可以重写为多个如果语句。这里有一个例子开关声明。
的开关评估的值美元的用户名
,然后赋值美元的地位
这取决于它的值。
<?php $username = 'Freddy';$ranks = array('guest', 'member', 'administrator');$rank = 0;//与$ranks数组开关相关联的键($username) {case 'Nathan': $rank = 2;打破;case 'Tim': $rank = 1;打破;case 'Freddy': $rank = 1;打破; } echo 'Hello ' . $username .”!你的等级是'。美元(美元排名)。“。”;?>
Self-quiz # 3:的输出是什么回声声明吗?(见下文答案)Switch语句可以将多个case分配给同一个代码块。在上面的例子中,我们看到了这一点案例的蒂姆
而且例“家”
做同样的事情(例如
它分配$rank = 1
),所以我们可以将上面的重写为:
<?php $username = 'Freddy';$ranks = array('guest', 'member', 'administrator');$rank = 0;switch ($username) {case 'Nathan': $rank = 2;打破;case 'Tim': case 'Freddy': $rank = 1;打破;}回显'Hello '。美元的用户名。”!你的等级是'。美元(美元排名)。“。”;?>
你可以使用默认的作为通用的情况,类似于如何使用an其他的在一系列的结尾如果语句。
如果所有情况都不匹配switch条件表达式,则默认的将被执行。
<?php $username = 'Freddy';$ranks = array('guest', 'member', 'administrator');$rank = 0;switch ($username) {case 'Nathan': $rank = 2;打破;case 'Tim': case 'Freddy': $rank = 1;打破;默认值:$rank = 0;打破;}回显'Hello '。美元的用户名。”!你的等级是'。美元(美元排名)。“。”;?>
结论
本指南介绍了PHP条件语句的基础知识。我们讨论了比较运算符,逻辑运算符和如果,elseif,开关条件语句。我们还讨论了三元操作符,它遵循if/else控制结构。
Self-Quiz答案
- 此评级无效。
- 的价值
美元的访问
是假. - 你好弗雷迪!你的军衔是会员。
相关内容
WebFX职业
加入我们的使命,为全球各地的企业提供行业领先的数字营销服务-同时建立您的个人知识和个人成长。