(四)PHP:语法结构

1.顺序结构

顺序结构就像一条直线,按着顺序一直往下执行。我们编写的代码默认都是按照顺序结构执行的。

# 示例代码:
<?php
    $shoesPrice = 49; //鞋子单价
    $shoesNum = 1; //鞋子数量
    $shoesMoney = $shoesPrice * $shoesNum;

    $shirtPrice = 99; //衬衣单价
    $shirtNum = 2; //衬衣数量
    $shirtMoney = $shirtPrice * $shirtNum;

    $orderMoney = $shoesMoney +  $shirtMoney;

    echo $orderMoney ;
?>

# 运行结果
247

2.条件结构之if…else…

语法:

<?php
if(条件){
     //分配服务器干的任务A
}else{
     //分配服务器干的任务B
}
?>
# 示例代码:
<?php
    date_default_timezone_set('Asia/ShangHai');
    $today = date('m-d',time());//获取当天日期
    $birthday = "02-14";//生日
    $money = 238;//消费金额
    $discount = 0.8;//八折优惠
    if($today == $birthday){
        $money = $money * $discount;
    }else{
        $money = $money * 1;
    }

    echo $money;
?>

# 运行结果
238

3.条件结构之if…else if…

语法:

<?php
if(条件一){
     //分配服务器干的任务A
}else if(条件二){
     //分配服务器干的任务B
}
?>

通过条件一判断,若返回值为布尔值为TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B。服务器会继续往下执行其他任务。

# 示例代码:
<?php
    $totalMoney = 0;//总工资
    $basicMoney =  2000;//基本工资
    $sex = "男";

    if($sex == "男"){
        $totalMoney = $basicMoney  + 0;// 男的没奖金
    }else if($sex == "女"){
        $totalMoney = $basicMoney  + 300;// 女的有奖金300元
    }
    echo $totalMoney;
?>

# 运行结果
2000

4.条件结构之if…else if…else…

语法:

<?php
if(条件一){
     //分配服务器干的任务A
}else if(条件二){
     //分配服务器干的任务B
}else{
     //分配服务器干的任务C
}
?>

通过条件一判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B,执行任务C。

# 示例代码:
<?php
    date_default_timezone_set('asia/shanghai');
    $week = date("w");//获取当天星期几
    $info = "";//提示信息
    if($week == 1){
        $info = "上午有课";
    }else if($week == 3){
        $info = "下午有课";     
    }else{
        $info = "今天没课";
    }
    echo $info; //输出提示信息
?>

# 运行结果
今天没课

5.条件结构之switch…case…

语法:

<?php
switch (条件)
{
case 条件值一:
  //任务一
  break; 
case 条件值二:
  //任务二
  break;
default:
  //默认任务
}
?>

首先判断条件,若条件的返回值为条件值一,则执行任务一,若条件返回的值为条件值二,则执行任务二,若条件的返回值既不是条件值一也不是条件值二,则执行默认任务。break的作用是结束switch(后面会有专门举例说明),使用 switch 语句可以避免冗长的 “if..else if..else”代码块。

# 示例代码:
<?php
    $num = rand(1,50);//获取1至50的随机数
    $info = "";//提示信息
    switch($num){
        case 1:
            $info = "恭喜你!中了一等奖!";
            break;
        case 2:
            $info = "恭喜你!中了二等奖!";
            break;
        case 3:
            $info = "恭喜你!中了三等奖!";
            break;
        default:
            $info = "很遗憾!你没有中奖!";
    }
    echo $info; //输出是否中奖
?>

# 运行结果
很遗憾!你没有中奖!

break的作用是阻止代码进入下一个case 中继续执行。

# 示例代码:
<?php
//A例子
$num = 2;
$sum  = 10; 
switch($num){
    case 1:
        $sum = $sum  + 10;
        break;
    case 2:
        $sum = $sum  + 10;
        break;
    case 3:
        $sum = $sum  + 10;
        break;
    default:
        $sum = $sum  + 10;
}
 echo "A例子的值是:".$sum."<br />";
//B例子
$num = 2;
$sum  = 10; 
switch($num){
    case 1:
        $sum = $sum  + 10;
    case 2:
        $sum = $sum  + 10;
    case 3:
        $sum = $sum  + 10;
    default:
        $sum = $sum  + 10;
}
 echo "B例子的值是:".$sum."<br />";
?>

# 运行结果
A例子的值是:20
B例子的值是:40

6.循环结构之while循环语句

语法:

<?php
while(条件){ 
     //执行任务
}
?>

首先判断某个条件是否符合(条件返回值是否为TRUE),若符合则执行任务,执行完毕任务,再判断条件是否满足要求,符合则重复执行此任务,否则结束任务。

# 示例代码:
<?php
    $sum = 12;//小宠物当前的饥饿程度
    echo "我饿啦:-(";
    echo "<br />";
    echo "当前饥饿度:".$sum."<br />";
    while($sum<100){//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
        echo "我还没吃饱呢!<br/>";
        $num = rand(1,20);//随机数,模拟喂食小宠物的小面包
        $sum = $sum + $num; //小宠物吃小面包
        echo "当前饥饿度:".$sum;
        echo "<br />";
    }
    echo "终于吃饱啦^_^";
?>

# 运行结果
我饿啦:-(
当前饥饿度:12
我还没吃饱呢!
当前饥饿度:29
我还没吃饱呢!
当前饥饿度:43
我还没吃饱呢!
当前饥饿度:57
我还没吃饱呢!
当前饥饿度:62
我还没吃饱呢!
当前饥饿度:65
我还没吃饱呢!
当前饥饿度:78
我还没吃饱呢!
当前饥饿度:96
我还没吃饱呢!
当前饥饿度:115
终于吃饱啦^_^

7.循环结构之do while循环语句

语法:

<?php
do{ 
     //执行任务
}while(条件)
?>

首先执行任务(上一节的while语句是先判断条件是否成立,再执行任务),执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续判定条件。

# 示例代码:
<?php
    $i =  1 ; //从第1圈开始跑
    do{  //跑10圈
        echo "在跑第".$i."圈。<br />";
        $i++;
    }while($i<=10);
?>

# 运行结果
在跑第1圈。
在跑第2圈。
在跑第3圈。
在跑第4圈。
在跑第5圈。
在跑第6圈。
在跑第7圈。
在跑第8圈。
在跑第9圈。
在跑第10圈。

8.循环结构之for循环语句

语法:

<?php
for(初始化;循环条件;递增项){
      //执行任务
}
?>

for 语句中,“初始化”在循环开始前无条件求值一次,“循环条件”在每次循环开始前求值。如果值为 TRUE,则继续循环,执行循环体语句(执行任务)。如果值为 FALSE,则终止循环。“递增项”在每次循环之后被求值(执行)。其常用于循环执行代码块指定的次数。

# 示例代码:
<?php
    //for语句写法
    for($i = 1,$sum = 0;$i<=100;$i++){
        $sum = $sum + $i; // 累加求和
    }
    echo "for语句的运行结果:".$sum."<br />" ;

    //while语句写法
    $i =  1 ; // 从1开始累加
    $sum = 0; //初始化和为0
    while($i<=100){  //判断是否小于100
        $sum = $sum + $i; // 累加求和
        $i++; //递增1
    }
    echo "while语句的运行结果:".$sum."<br />" ;
?>

# 运行结果
for语句的运行结果:5050
while语句的运行结果:5050

9.循环结构之foreach循环语句

语法:

# (1)只取值,不取下标
<?php
 foreach (数组 as 值){
//执行的任务
}
?>

# (2)同时取下标和值
<?php
foreach (数组 as 下标 => 值){
 //执行的任务
}
?>
# 示例代码:
<?php
    $students = array(
    '2010'=>'令狐冲',
    '2011'=>'林平之',
    '2012'=>'曲洋',
    '2013'=>'任盈盈',
    '2014'=>'向问天',
    '2015'=>'任我行',
    '2016'=>'冲虚',
    '2017'=>'方正',
    '2018'=>'岳不群',
    '2019'=>'宁中则',
    );//10个学生的学号和姓名,用数组存储

    //使用循环结构遍历数组,获取学号和姓名  
    echo "仅取值:<br/>";
    foreach($students as  $v){ 
        echo $v;//输出(打印)姓名
        echo "<br />";
    }
    echo "<br/>取下标和值:<br/>";
    foreach($students as  $k => $v){ 
        echo "下标:".$k."_____值:".$v;//输出(打印)姓名
        echo "<br />";
    }
?>

# 运行结果
仅取值:
令狐冲
林平之
曲洋
任盈盈
向问天
任我行
冲虚
方正
岳不群
宁中则

取下标和值:
下标:2010_____值:令狐冲
下标:2011_____值:林平之
下标:2012_____值:曲洋
下标:2013_____值:任盈盈
下标:2014_____值:向问天
下标:2015_____值:任我行
下标:2016_____值:冲虚
下标:2017_____值:方正
下标:2018_____值:岳不群
下标:2019_____值:宁中则

10.结构嵌套之循环嵌套

# 示例代码:
<?php
     $students = array(
    '2010'=>array('令狐冲',"59"),
    '2011'=>array('林平之',"44"),
    '2012'=>array('曲洋',"89"),
    '2013'=>array('任盈盈',"92"),
    '2014'=>array('向问天',"93"),
    '2015'=>array('任我行',"87"),
    '2016'=>array('冲虚',"58"),
    '2017'=>array('方正',"74"),
    '2018'=>array('岳不群',"91"),
    '2019'=>array('宁中则',"90"),
    );//10个学生的学号、姓名、分数,用数组存储

    foreach($students as $key=>$val)
    { //使用循环结构遍历数组,获取学号 
         echo $key; //输出学号
         echo ":";
         //循环输出姓名和分数
         foreach($val as $v)
         {
            echo $v; 
         }
         echo "<br />";
    }
?>

# 运行结果
2010:令狐冲59
2011:林平之44
2012:曲洋89
2013:任盈盈92
2014:向问天93
2015:任我行87
2016:冲虚58
2017:方正74
2018:岳不群91
2019:宁中则90
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值