《重蔚php學(xué)習(xí)第二十六天——php流程控制,php模板語(yǔ)法》要點(diǎn):
本文介紹了重蔚php學(xué)習(xí)第二十六天——php流程控制,php模板語(yǔ)法,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP有三種流程控制結(jié)構(gòu):順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)
默認(rèn)的,代碼的執(zhí)行結(jié)構(gòu)都是順序結(jié)構(gòu).代碼一行一行從上往下執(zhí)行.順序結(jié)構(gòu)是程序代碼的最基本結(jié)構(gòu).
分支結(jié)構(gòu):一段代碼根據(jù)不同的條件執(zhí)行不同的部分
PHP中有兩種基本分支結(jié)構(gòu):if分支結(jié)構(gòu),switch分支結(jié)構(gòu)
If分支結(jié)構(gòu)語(yǔ)法
If(條件表達(dá)式){
//當(dāng)條件表達(dá)式返回結(jié)果為true的時(shí)候,執(zhí)行里面的語(yǔ)句塊
//語(yǔ)句塊
}
//如果條件表達(dá)式返回結(jié)果為false則不執(zhí)行語(yǔ)句塊
以上被稱(chēng)之為最簡(jiǎn)分支結(jié)構(gòu)
標(biāo)準(zhǔn)if結(jié)構(gòu)
If(條件表達(dá)式){
//if語(yǔ)句塊
}else{
//else語(yǔ)句塊
}
復(fù)雜if結(jié)構(gòu)
If(條件表達(dá)式1){
//if語(yǔ)句
}else if(條件表達(dá)式2){
//else if語(yǔ)句
}…{
}else{
//else語(yǔ)句塊
}
If分支結(jié)構(gòu)原理
在PHP中允許else if和elseif兩種語(yǔ)法.兩種語(yǔ)法得到的結(jié)果完全一致.但是實(shí)現(xiàn)原理不同.
Else if:一次只有兩個(gè)結(jié)果,向下的其他比較都是在false之后再次產(chǎn)生,類(lèi)似二叉樹(shù)
Elseif:產(chǎn)生一個(gè)平行結(jié)構(gòu),一個(gè)多節(jié)點(diǎn)的樹(shù)狀結(jié)構(gòu).
Switch分支結(jié)構(gòu)
語(yǔ)法
Switch($falg){
Case 1:
//語(yǔ)句
Break;
Case 2:
//語(yǔ)句
Break;
Default:
//語(yǔ)句
Break;
}
結(jié)構(gòu)和運(yùn)行原理
什么時(shí)候使用if結(jié)構(gòu),什么時(shí)候使用switch結(jié)構(gòu)?
大部分的情況下都可以使用.通常會(huì)這樣來(lái)區(qū)分使用:
如果條件是需要判斷大小或者范圍的,使用if分支結(jié)構(gòu)
如果條件是規(guī)定具體值的,那么使用switch
不推薦在switch中使用條件判斷(比較表達(dá)式)
注意:凡是能使用switch的都可以使用if來(lái)解決,但是不見(jiàn)得所有if能實(shí)現(xiàn)的switch都可以做到.如果switch中case對(duì)應(yīng)的條件是個(gè)比較表達(dá)式的話,有可能出問(wèn)題.
循環(huán)結(jié)構(gòu)
某一段代碼需要重復(fù)執(zhí)行
電腦要知道什么時(shí)候結(jié)束執(zhí)行,否則會(huì)一直執(zhí)行下去,死循環(huán).
注意:寫(xiě)任何循環(huán)結(jié)構(gòu)的時(shí)候都要保證循環(huán)不會(huì)出現(xiàn)死循環(huán).
PHP提供了多種循環(huán)
For,while,do-while,foreach
For循環(huán):知道具體循環(huán)次數(shù)
For(初始條件;條件范圍;條件變更){
//循環(huán)體
}
While循環(huán):只要滿足條件,就可以無(wú)限循環(huán)
語(yǔ)法:
While(條件表達(dá)式){
//循環(huán)體
//循環(huán)變量的變化
}
Do-while循環(huán):先執(zhí)行循環(huán)體再判斷循環(huán)條件
語(yǔ)法:
Do{
//循環(huán)體
//循環(huán)條件變更
}while(條件表達(dá)式);
While和do-while的區(qū)別:do-while一定會(huì)執(zhí)行一次循環(huán)體,而while不一定
Foreach:PHP中專(zhuān)門(mén)用來(lái)遍歷數(shù)組(關(guān)聯(lián)數(shù)組),后面講數(shù)組的時(shí)候再講.
For模擬while
標(biāo)簽語(yǔ)法,因?yàn)镻HP是需要嵌入到html代碼中
<?php for($i=0;$i<10;$i++){ ?>
<tr><td><?php echo $i;?></td></tr>
<?php }?>
為了解決在html語(yǔ)言中出現(xiàn)這種大括號(hào)分開(kāi)寫(xiě),不美觀的情況,可以使用標(biāo)簽語(yǔ)法替代
標(biāo)簽語(yǔ)法:在大括號(hào)開(kāi)始“{”的時(shí)候使用冒號(hào)“:”替代,在大括號(hào)結(jié)束的地方使用end+標(biāo)簽+分號(hào)“;”
If(){
}
標(biāo)簽語(yǔ)法
If() :
Endif;
For循環(huán)
For():
Endfor;
While循環(huán)
While():
Endwhile;
Foreach循環(huán)
Foreach():
Endforeach;
使用見(jiàn)代碼demo06.php
什么是函數(shù)?某一段常用的代碼塊的集合,在使用的時(shí)候只需要去調(diào)用這個(gè)代碼塊的“入口”,函數(shù)名即可.
為什么使用函數(shù)?
代碼的重復(fù)利用
模塊化編程
函數(shù)分為兩種:系統(tǒng)函數(shù)和自定義函數(shù)
系統(tǒng)函數(shù):系統(tǒng)為開(kāi)發(fā)人員定義的函數(shù),只需要開(kāi)發(fā)人員調(diào)用即可.
自定義函數(shù):開(kāi)發(fā)人員自己定義函數(shù),調(diào)用前需要先定義函數(shù).
自定義函數(shù)
語(yǔ)法:
function 函數(shù)名(參數(shù)列表){
函數(shù)體;
Return返回值
}
自定義函數(shù)的幾個(gè)要素:函數(shù)名,函數(shù)體,返回值
如何調(diào)用函數(shù)?
跟調(diào)用系統(tǒng)函數(shù)一樣
語(yǔ)法:函數(shù)名(參數(shù)列表);
函數(shù)到底是如何被執(zhí)行的?
函數(shù)的調(diào)用與函數(shù)的定義順序沒(méi)有關(guān)系,可以在定義函數(shù)之前調(diào)用函數(shù),前提是彼此都在同一個(gè)腳本.
原因何在?
函數(shù)的參數(shù):形式參數(shù)和實(shí)際參數(shù)
形式參數(shù):定義函數(shù)的時(shí)候所使用的參數(shù)就稱(chēng)之為形式參數(shù),形式參數(shù)沒(méi)有實(shí)際值
實(shí)際參數(shù):在調(diào)用函數(shù)的時(shí)候傳遞給形式參數(shù)的參數(shù)叫做實(shí)際參數(shù)
代碼
函數(shù)參數(shù)的傳遞
值傳遞:拷貝復(fù)制,重新開(kāi)辟內(nèi)存空間
引用傳遞:直接傳遞地址,指向同一個(gè)內(nèi)存空間
函數(shù)默認(rèn)使用的都是值傳遞,把實(shí)際傳入的參數(shù)的值復(fù)制并賦值給形式參數(shù).
但是也可以改變函數(shù)的參數(shù)方式變成引用傳遞.
語(yǔ)法
在定義函數(shù)的時(shí)候,將形式參數(shù)添加一個(gè)&符號(hào)
Function test(&$name){
//在這里對(duì)$name進(jìn)行操作,也就是對(duì)外部傳入的變量進(jìn)行操作
}
調(diào)用:與普通調(diào)用一樣
引用傳值原理
代碼
作用域
什么是作用域?一個(gè)變量能夠被識(shí)別的范圍.
PHP中有兩個(gè)作用域:全局作用域,局部作用域
Js中也有兩個(gè)作用域:全局作用域,局部作用域
如何在函數(shù)內(nèi)部使用全局變量呢?
PHP提供了一種機(jī)制去在函數(shù)內(nèi)部調(diào)用全局變量
$GLOBALS[‘全局變量名’]
原理:
$GLOBALS會(huì)在用戶定義全局變量的時(shí)候,將變量名和值保存到$GLOBALS數(shù)組中,其中變量名對(duì)應(yīng)鍵名(數(shù)組下標(biāo)),值對(duì)應(yīng)數(shù)組的值.
又因?yàn)?GLOBALS是超全局變量,所以可以在任何地方使用.
$GLOBALS保存的全局變量的引用,$GLOBALS[‘變量名’] === 變量名
Global 全局變量名
在函數(shù)內(nèi)部建立一個(gè)全局變量
global原理
《重蔚php學(xué)習(xí)第二十六天——php流程控制,php模板語(yǔ)法》是否對(duì)您有啟發(fā),歡迎查看更多與《重蔚php學(xué)習(xí)第二十六天——php流程控制,php模板語(yǔ)法》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/7174.html