一,分支语句
1,if…else
//单分支
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
//多分支情况,要注意elseif的前提是:上一个条件不满足的情况下
<?php
$t=date("H");
if ($t<"10") //<10
{
echo "Have a good morning!";
}
elseif ($t<"20") //10<=$T<20
{
echo "Have a good day!";
}
else //>=20
{
echo "Have a good night!";
}
?>
2,switch…else
switch…case只能判断条件恒定的情况,无法有更复杂的逻辑表达式
<?php
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
二,循环语句
- while - 只要指定的条件成立,则循环执行代码块
- do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
- for - 循环执行代码块指定的次数
- foreach - 根据数组中每个元素来循环代码块
//当秒数小于30时,循环执行
$i=date("s");
while($i <= 30)
{
echo date("YY-MM-dd H:i:s") . "<br/>";
echo date("s");
sleep(1);
}
//当$i自增到11时,循环结束
$i=1;
while($i<=10)
{
echo $i. '<br/>';
$i++;
}
//当$i自增11时,结束循环
for ($i=1;$i<=10;$i++)
{
echo $i . '<br/>'
}
//while比较适合用于有条件,无限次数的情况,比如读取文件,文件读取结束后会有一个结束标志
//for比较时候有明确循环次数的情况,比如类运输或者遍历(字符串,数组)
$i=1;
do {
if($i % 3 == 0){
continue;
}
echo date("y-m-d H:i:s");
$i++;
}while($i <= 5);
//break;结束当前整个循环
//continue;结束本次循环,继续下次
$i=date("s");
while($i <= 30)
{
echo date("YY-MM-dd H:i:s") . "<br/>";
echo date("s");
sleep(1);
}
问题一:上述代码如果从00秒开始执行,会出现一个错误,请查阅资料
Fatal error: Maximum execution time of 120 seconds exceeded in D:\SW\XMPP\htdocs\learn\PHP\hybrid.php on line 14
问题二:上述代码不会按照既定的每一秒输出在屏幕上一次时间,而是等循环体结束后一次行输出,不符合预期,请解决