PHP if…else…elseif 语句
条件语句用于基于不同条件执行不同的动作
PHP 条件语句
在您编写代码时,经常会希望为不同的决定执行不同的动作。您可以在代码中使用条件语句来实现这一点。
在 PHP 中,我们可以使用以下条件语句:
-
if 语句 – 如果指定条件为真,则执行代码
-
if…else 语句 – 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
-
if…elseif….else 语句 – 选择若干段代码块之一来执行
-
switch 语句 – 语句多个代码块之一来执行
PHP – if 语句
if 语句用于在指定条件为 true 时执行代码。
语法
if (条件) {
当条件为 true 时执行的代码;
}
下例将输出 \”Have a good day!\”,如果当前时间 (HOUR) 小于 20:
实例
<?php
$t=date(\”H\”);
if ($t<\”20\”) {
echo \”Have a good day!\”;
}
?>
PHP – if…else 语句
请使用 if….else 语句在条件为 true 时执行代码,在条件为 false 时执行另一段代码。
语法
if (条件) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}
下例将输出 \”Have a good day!\”,如果当前时间 (HOUR) 小于 20,否则输出 \”Have a good night!\”:
实例
<?php
$t=date(\”H\”);
if ($t<\”20\”) {
echo \”Have a good day!\”;
} else {
echo \”Have a good night!\”;
}
?>
PHP – if…elseif….else 语句
请使用 if….elseif…else 语句来选择若干代码块之一来执行。
语法
if (条件) {
条件为 true 时执行的代码;
} elseif (condition) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}
下例将输出 \”Have a good morning!\”,如果当前时间 (HOUR) 小于 10,如果当前时间小于 20,则输出 \”Have a good day!\”。否则将输出 \”Have a good night!\”:
实例
<?php
$t=date(\”H\”);
if ($t<\”10\”) {
echo \”Have a good morning!\”;
} elseif ($t<\”20\”) {
echo \”Have a good day!\”;
} else {
echo \”Have a good night!\”;
}
?>
select…case语句详解
select 语句
select 语句类似于 switch 语句, 但是select会随机执行一个可运行的case。如果没有case可运行, 它将阻塞, 直到有case可运行。
select 是Go中的一个控制结构, 类似于用于通信的switch语句。每个case必须是一个通信操作, 要么是发送要么是接收。
select 随机执行一个可运行的case。如果没有case可运行, 它将阻塞, 直到有case可运行。一个默认的子句应该总是可运行的。
语法:
以下描述了 select 语句的语法:
每个case都必须是一个通信
所有channel表达式都会被求值
所有被发送的表达式都会被求值
如果任意某个通信可以进行, 它就执行;其他被忽略。
如果有多个case都可以运行, Select会随机公平地选出一个执行。其他不会执行。
否则:
如果有default子句, 则执行该语句。
如果没有default字句, select将阻塞, 直到某个通信可以运行;Go不会重新对channel或值进行求值。
以上代码执行结果为:
no communication
select可以监听channel的数据流动
select的用法与switch语法非常类似, 由select开始的一个新的选择块, 每个选择条件由case语句来描述
与switch语句可以选择任何使用相等比较的条件相比, select由比较多的限制, 其中最大的一条限制就是每个case语句里必须是一个IO操作
在一个select语句中, Go会按顺序从头到尾评估每一个发送和接收的语句。
如果其中的任意一个语句可以继续执行(即没有被阻塞), 那么就从那些可以执行的语句中任意选择一条来使用。
如果没有任意一条语句可以执行(即所有的通道都被阻塞), 那么有两种可能的情况:
1 如果给出了default语句, 那么就会执行default的流程, 同时程序的执行会从select语句后的语句中恢复。
2 如果没有default语句, 那么select语句将被阻塞, 直到至少有一个case可以进行下去。
Golang select的使用及典型用法
基本使用
select是Go中的一个控制结构, 类似于switch语句, 用于处理异步IO操作。select会监听case语句中channel的读写操作, 当case中channel读写操作为非阻塞状态(即能读写)时,将会触发相应的动作。
select中的case语句必须是一个channel操作
select中的default子句总是可运行的。
如果有多个case都可以运行, select会随机公平地选出一个执行, 其他不会执行。
如果没有可运行的case语句, 且有default语句, 那么就会执行default的动作。
如果没有可运行的case语句, 且没有default语句, select将阻塞, 直到某个case通信可以运行
例如:
典型用法
1.超时判断
//比如在下面的场景中,使用全局resChan来接受response,如果时间超过3S,resChan中还没有数据返回,则第二条case将执行
2.退出
3.判断channel是否阻塞
4 select…case 匹配多个通道问题?
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。