PHP-順序結構
順序結構就像一條直線,按著順序一直往下執行。我們編寫的代碼默認都是按照順序結構執行的。
<?php
$shoesPrice = 49; //鞋子單價
$shoesNum = 1; //鞋子數量
$shoesMoney = $shoesPrice * $shoesNum;
$shirtPrice = 99; //襯衣單價
$shirtNum = 2; //襯衣數量
$shirtMoney = $shirtPrice * $shirtNum;
$orderMoney = $shoesMoney + $shirtMoney;
echo $orderMoney ;
?>
//247
PHP條件結構之if…else…
條件結構就像一個岔路口,可以向左走,也可以向右走。比如上洗手間,我們知道我們的性別,這時候我們需要根據洗手間提供的條件,左邊男洗手間,右邊女洗手間,或者正好相反,其中性別就是這個條件結構的條件。再比如,現在的分數都流行使用A、B、C來分級,假設考試成績是93分,可以將其設置為等級A,考試成績是87,可以將其設置為等級B,這里分數區間即為條件結構中的條件。
<?php
date_default_timezone_set('Asia/ShangHai');
$today = date('m-d',time());//獲取當天日期
$birthday = "09-22";//生日
$money = 238;//消費金額
$discount = 0.8;//八折優惠
if($today == $birthday){
$money = $money * $discount;
}else{
$money = $money * 1;
}
echo $today."<br />";
echo $money;
?>
/*02-13
238*/
PHP條件結構之if…else if…
<?php
$totalMoney = 0;//總工資
$basicMoney = 2000;//基本工資
$sex = "男";
if($sex == "男"){
$totalMoney = $basicMoney + 0;// 男的沒獎金
}else if($sex == "女"){
$totalMoney = $basicMoney + 300;// 女的有獎金300元
}
echo $totalMoney;
?>
//2000
PHP條件結構之if…else if…else…
<?php
date_default_timezone_set('asia/shanghai');
$week = date("w");//獲取當天星期幾
$info = "";//提示信息
if($week == 1){
$info = "上午有課";
}else if($week == 3){
$info = "下午有課";
}else{
$info = "今天沒課";
}
echo $info; //輸出提示信息
?>
//上午有課
PHP條件結構之switch…case…
首先判斷條件,若條件的返回值為條件值一,則執行任務一,若條件返回的值為條件值二,則執行任務二,若條件的返回值既不是條件值一也不是條件值二,則執行默認任務。break的作用是結束switch(后面會有專門舉例說明),使用 switch 語句可以避免冗長的 “if..else if..else”代碼塊。
<?php
$num = rand(1,4);//獲取1至50的隨機數
$info = "";//提示信息
switch($num){
case 1:
$info = "恭喜你!中了一等獎!";
break;
case 2:
$info = "恭喜你!中了二等獎!";
break;
case 3:
$info = "恭喜你!中了三等獎!";
break;
default:
$info = "很遺憾!你沒有中獎!";
}
echo $info."<br><br>"; //輸出是否中獎
echo '<a href="#" onClick="document.location.reload()">重新抽獎</a>';
?>
PHP條件結構之switch…case…中的break
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
case的意思是,符合條件,就從這一行開始執行;
所以,如果num=2, A就從case2開始執行,10+10,再執行break,就結束了,就是20;
B就從case2開始執行,10+10,之后繼續執行28行的case3,和defalult,,所以就是10+10+10+19=40;
*/
PHP中循環結構之while循環語句
循環結構就像一圈圈地跑足球場,跑完一圈再跑一圈。也就是說,在符合的條件下,重復執行某項任務。像400米一圈的跑道,跑800米的話就跑2圈,當跑完第一圈接著跑第二圈,第二圈結束已經達到800米,終止跑步
<?php
$sum = 12;//小寵物當前的饑餓程度
echo "我餓啦:-(";
echo "<br />";
while($sum<100)
{//小寵物的饑餓程度到100,表示小寵物吃飽啦,不用繼續喂了,沒吃飽繼續喂食
$num = rand(1,20);//隨機數,模擬喂食小寵物的小面包
$sum = $sum + $num; //小寵物吃小面包
if($sum<=100){
echo "恢復了<b>".$num."</b>點饑餓值"."<br/>";
echo "當前饑餓值為<b>".$sum."</b>";
echo "<br />";
}else {
$num=$num-($sum-100);
echo "恢復了<b>".$num."</b>點饑餓值"."<br/>";
echo "當前饑餓值為<b>"."1000"."</b>";
echo "<br />";
}
}
echo "終于吃飽啦^_^";
?>
PHP中循環結構之do while循環語句
在PHP中循環語句還有另一種:do...while循環語句語法如下:
<?php
do{
//執行任務
}while(條件)
?>
首先執行任務(上一節的while語句是先判斷條件是否成立,再執行任務),執行任務完畢,判斷某個條件是否符合(條件返回值是否為TRUE),若符合則再次執行任務,執行完畢任務,繼續判定條件。
<?php
$i = 1 ; //從第1圈開始跑
do{ //跑10圈
echo "在跑第".$i."圈。";
$i++;
}while($i<=10);
?>
PHP中循環結構之while與do…while語句的區別
while與do…while循環語句的區別是,while先判斷條件是否成立,后執行循環,do...while先執行一次任務,再判斷是否繼續執行循環,也就是說do...while至少會執行一次任務。當條件為FALSE時,while中的任務會一次也不執行,do...while中的任務會執行1次。
<?php
//A例子
$num = 2;
$sum = 10;
while($num>3){
$sum = $sum + 10;
}
echo "A例子的結果:".$sum."<br />";
//B例子
$num = 2;
$sum = 10;
do{
$sum = $sum + 10;
}while($num>3);
echo "B例子的結果:".$sum."<br />";
?>
/*A例子的結果:10
B例子的結果:20*/
PHP中循環結構之do…while語句的運用優勢舉例
while和do...while可以根據具體情況選用。假設有一種棋類游戲,首先擲骰子,若不為6,前進骰子的點數的步長;若為6,前進骰子的點數的步長,并可以再擲一次。
<?php
//while例子
$sum = 0;
$num = rand(1,6); //獲取1至6的隨機數,模擬擲骰子
$sum = $sum + $num;//前進步長
while($num==6){
$num = rand(1,6);//獲取1至6的隨機數,模擬擲骰子
$sum = $sum + $num;//前進步長
};
echo "while例子執行完畢,前進:".$sum ."<br />";
//do...while例子
$sum = 0;
do{
$num = rand(1,6);//獲取1至6的隨機數,模擬擲骰子
$sum = $sum + $num;//前進步長
}while($num==6);
echo "do...while例子執行完畢,前進:".$sum ."<br />";
?>
PHP中循環結構之for循環語句
在PHP中還有一種循環語句,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*/
PHP中循環結構之foreach循環語句(一)
在PHP中foreach循環語句,常用于遍歷數組,一般有兩種使用方式:不取下標、取下標。
(1)只取值,不取下標
<?php
foreach (數組 as 值){
//執行的任務
}
?>
(2)同時取下標和值
<?php
foreach (數組 as 下標 => 值){
//執行的任務
}
?>
<?php
$students = array(
'2010'=>'令狐沖',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向問天',
'2015'=>'任我行',
'2016'=>'沖虛',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'寧中則',
);//10個學生的學號和姓名,用數組存儲
//使用循環結構遍歷數組,獲取學號和姓名
foreach($students as $v){
echo $v;//輸出(打印)姓名
echo "<br />";
}
?>
PHP中循環結構之foreach循環語句(二)
<?php
$students = array(
'2010'=>'令狐沖',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向問天',
'2015'=>'任我行',
'2016'=>'沖虛',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'寧中則',
);//10個學生的學號和姓名,用數組存儲
//使用循環結構遍歷數組,獲取學號和姓名
foreach($students as $key =>$v)
{
echo $key.":".$v;//輸出(打印)學號:姓名
echo "<br />";
}
?>
/*2010:令狐沖
2011:林平之
2012:曲洋
2013:任盈盈
2014:向問天
2015:任我行
2016:沖虛
2017:方正
2018:岳不群
2019:寧中則*/
PHP中結構嵌套之條件嵌套
條件結構嵌套就像回家的路上會遇到多個十字路口。
<?php
$totalMoney = 0;//總工資
$basicMoney = 300;//基本工資
$sex = "男";
$noHouse = TRUE; //是否有房
$houseMoney = 150;//住房補貼
$isPregnancy = TRUE; //是否懷孕
$pregnancyMoney = 100;//懷孕補貼
if($sex =="男")
{
$totalMoney = $basicMoney + 0;// 男的沒獎金
if($noHouse)
{
$totalMoney = $totalMoney + $houseMoney;
}
}
else if($sex == "女")
{
$totalMoney = $basicMoney + 300;// 女的有獎金300元
if($isPregnancy)
{
$totalMoney = $totalMoney + $pregnancyMoney;
}
}
echo $totalMoney;
?>
//450
PHP中結構嵌套之循環嵌套
循環結構嵌套,就是類似于跑多個足球場,例如假設有兩個足球場,一個大足球場,一個小足球場,在大足球場跑一圈后,再到小足球場跑幾圈,跑完幾圈后,再到大足球場中繼續跑。在遍歷二維數組中很常用。
<?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
*/
PHP中結構嵌套之循環結構與條件結構嵌套
有時候在執行任務時,對于一些特殊的任務還需要進行額外處理,這個時候就會將循環結構與條件結構嵌套使用。
<?php
$students = array(
'2010'=>'令狐沖',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向問天',
'2015'=>'任我行',
'2016'=>'沖虛',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'寧中則',
);//10個學生的學號和姓名,用數組存儲
$query = '2014';
//使用循環結構遍歷數組,獲取學號和姓名
foreach($students as $key => $v)
{
//使用條件結構,判斷是否為該學號
if($key ==$query)
{
echo $v;//輸出(打印)姓名
break;//結束循環(跳出循環)
}
}
?>
//向問天