第3講其他操作符與表達(dá)式、流程控制.ppt_第1頁(yè)
第3講其他操作符與表達(dá)式、流程控制.ppt_第2頁(yè)
第3講其他操作符與表達(dá)式、流程控制.ppt_第3頁(yè)
第3講其他操作符與表達(dá)式、流程控制.ppt_第4頁(yè)
第3講其他操作符與表達(dá)式、流程控制.ppt_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三講 常量與表達(dá)式、流程控制,課前回顧 1.如何定義一個(gè)數(shù)組,并輸出數(shù)組元素 2.如何定義一個(gè)類,實(shí)例化類的對(duì)象,并條用該類的方法 3.值賦值和引用賦值的區(qū)別 4.全局變量的使用(global,$GLOBALS) 5.掌握PHP運(yùn)算符,課程目標(biāo) 一、掌握php常量的用法 二、掌握php流程控制語(yǔ)句 三、理解并掌握php函數(shù),3.1 PHP靜態(tài)變量,PHP使用STATIC(小寫也可以)關(guān)鍵字來定義靜態(tài)變量 靜態(tài)變量在函數(shù)退出時(shí)不會(huì)丟失值 Function keep_track() STATIC $count=5; echo $count+,” Keep_track(); Keep_track(

2、); Keep_track();,3.1 PHP常量,常量是指程序運(yùn)行過程中不能修改的值,php使用define函數(shù)來定義常量 例如: define(CONSTANT, Hello world.); 1、常量前面沒有美元符號(hào)($); 2、常量只能用 define() 函數(shù)定義,而不能通過賦值語(yǔ)句; 3、常量可以不用理會(huì)變量范圍的規(guī)則而在任何地方定義和訪問; 4、常量一旦定義就不能被重新定義或者取消定義; echo CONSTANT; / outputs Hello world.echo Constant; / outputs Constant and issues a notice.,3.2

3、PHP程序控制語(yǔ)句,與順序運(yùn)行不同的,另一種運(yùn)行將程序流轉(zhuǎn)換到腳本另外的部分。也就是,不按順序運(yùn)行下一條語(yǔ)句,而是運(yùn)行另外的語(yǔ)句,叫做控制流程語(yǔ)句。 控制語(yǔ)句如下: 一、條件語(yǔ)句 (1)if 語(yǔ)句 (2)switch語(yǔ)句(多分支) 二、循環(huán)語(yǔ)句 (1)for循環(huán) (2)while循環(huán) (3)dowhile循環(huán) (4) foreach,3.2.1控制語(yǔ)句-條件語(yǔ)句,實(shí)例1-1 $b) /判斷a是否大于b print “a大于b”; ?,if (表達(dá)式一) /滿足條件執(zhí)行以下程序段 . . . ,(1)if 語(yǔ)句語(yǔ)法:,if (表達(dá)式一) /滿足條件執(zhí)行以下程序段 else /不滿足執(zhí)行如下程序段

4、 ,實(shí)例1-2 $b) /判斷a是否大于b print “a大于b”; else /反之a(chǎn)小于b print “a小于b”; ?,(2)if 語(yǔ)句語(yǔ)法:,3.2.1控制語(yǔ)句-條件語(yǔ)句,if (表達(dá)式一) /滿足條件執(zhí)行以下程序段 elseif (表達(dá)式二) else ,實(shí)例1-3 $b) print “a大于b”; elseif ($a=$b) print “a等于b”; else print “a小于b”; ?,(3)if 語(yǔ)句語(yǔ)法:,3.2.1控制語(yǔ)句-條件語(yǔ)句,3.2.1控制語(yǔ)句- If語(yǔ)句的應(yīng)用,=60 else echo 你簡(jiǎn)直太棒了! ?,顯示結(jié)果:你簡(jiǎn)直太棒了!,switch (

5、$i) case 0: print i equals 0; break;case 1: print i equals 1; break; case 2: print i equals 2; break; default: break, continue Break 中斷當(dāng)前的循環(huán)控制結(jié)構(gòu)。 Continue 被用來跳出剩下的當(dāng)前循環(huán)并繼續(xù)執(zhí)行下一次循環(huán)。,3.2.2控制語(yǔ)句- switch語(yǔ)句,12,3.2.2.1控制語(yǔ)句- switch語(yǔ)句,例:break語(yǔ)句舉例 ,13,3.2.2.2控制語(yǔ)句- switch語(yǔ)句,例:continue語(yǔ)句舉例 ,3.2.2控制語(yǔ)句- Switch語(yǔ)句的應(yīng)用

6、,(1)For循環(huán),3.2.3控制語(yǔ)句-循環(huán)語(yǔ)句,for語(yǔ)句的結(jié)構(gòu)是: for (start;condition;increment) statement(s); 在for語(yǔ)句的開始,start表達(dá)式被計(jì)算一次。每經(jīng)過一次循環(huán),condition表達(dá)式都被測(cè)試一次。如果為true,則循環(huán)體被執(zhí)行;如果為false,則循環(huán)結(jié)束,表達(dá)式increment在循環(huán)體運(yùn)行后被計(jì)算。,實(shí)例2-1,顯示結(jié)果:1+2+3+4+5+6+7+8+9+10+,如果計(jì)算出expression的值為true,則statement被執(zhí)行,并且接著再計(jì)算expression的值(如果為true,則循環(huán)體被執(zhí)行,如此繼續(xù))。

7、當(dāng)計(jì)算的值為false時(shí)循環(huán)退出。,3.2.4控制語(yǔ)句- While循環(huán),while(expression) statement(s); ,while(expression): statement(s); .; endwhile;,語(yǔ)法結(jié)構(gòu)一:,語(yǔ)法結(jié)構(gòu)二:,以下例子是計(jì)算機(jī)的累加和. (語(yǔ)法一) ,3.2.4控制語(yǔ)句- While循環(huán),以下例子是計(jì)算的累加和.(語(yǔ)法二) ,注:大家在寫程序代碼時(shí)注意在while():結(jié)束處的”冒號(hào)”,在endwhile;”分號(hào)”,3.2.4控制語(yǔ)句- While循環(huán),3.2.5控制語(yǔ)句- Do-while循環(huán),在PHP中同樣也支持do-while循環(huán),該循環(huán)

8、為以下形式: do statement(s); while(expression) 用do-while循環(huán)來確保循環(huán)體至少被執(zhí)行一次:,foreach語(yǔ)句可用于遍歷一個(gè)數(shù)組中的元素??梢杂靡韵抡Z(yǔ)句循環(huán)遍歷一個(gè)數(shù)組,訪問每一個(gè)鍵:,3.2.6控制語(yǔ)句- foreach循環(huán),foreach($array as $current) /. ,foreach ($array as $current): /. endforeach;,語(yǔ)法結(jié)構(gòu)一:,語(yǔ)法結(jié)構(gòu)二:,; ?,實(shí)例:,1:include()和include_once() 1include():在其被調(diào)用的位置包含一個(gè)文件,也可根據(jù)條件來執(zhí)行inc

9、lude語(yǔ)句,但根據(jù)條件執(zhí)行時(shí)必須包含在大括號(hào)中 2include_once():作用與include相同,不過它會(huì)首先驗(yàn)證是否包含了該文件,如果已經(jīng)包含則不再執(zhí)行include_once(),否則則必須包含 2:require()和require_once() 1require():很大程度上與include相同,但亦有區(qū)別 :任何情況下require()都會(huì)把文件包含在腳本中(條件為假時(shí) ) require()出錯(cuò)時(shí)腳本會(huì)停止執(zhí)行,但在使用include()時(shí),腳本會(huì)繼續(xù)執(zhí)行 2require_once():函數(shù)確保文件只包含一次,后面再試圖包含相同的文件將被忽略,3.2.7文件包含語(yǔ)句-

10、 include()和require(),3.3 函數(shù),函數(shù)(function)是一段完成指定任務(wù)的已命名代碼,函數(shù)可以遵照給它的一組值或參數(shù)(parameter)完成任務(wù),并且可能返回一個(gè)值。函數(shù)節(jié)省了編譯時(shí)間,無論調(diào)用函數(shù)多少次,函數(shù)都只需為頁(yè)面編譯一次。函數(shù)允許你在一處修改任何錯(cuò)誤,而不是在每個(gè)執(zhí)行任務(wù)的地方修改,這樣就提高了程序的可靠性,并且將完成指定任務(wù)的代碼一一隔離,也提高了程序的可讀性。 本講介紹 函數(shù)調(diào)用 函數(shù)定義的語(yǔ)法, 討論如何管理函數(shù)中的變量 向函數(shù)中傳遞值(包括按值傳遞和按引用傳遞), 可變函數(shù) 匿名函數(shù)。,3.3.1函數(shù)-調(diào)用函數(shù),PHP程序中的函數(shù)(內(nèi)置或者是自定義

11、)不管他們的源代碼是怎樣的,所有的函數(shù)都用相同的方法求值: $some_value = function_name(parameter,.); 函數(shù)要求的參數(shù)個(gè)數(shù)因函數(shù)的不同而不同。提供給函數(shù)的參數(shù)可以是任何有效的表達(dá)式,并且必須指定參數(shù)在函數(shù)中預(yù)期的順序。函數(shù)的文檔將告訴你函數(shù)期望什么樣的參數(shù),以及你可以預(yù)期返回什么樣的值。,下面是一些內(nèi)置函數(shù)的例子: /strlen()是返回字符串長(zhǎng)度的內(nèi)置函數(shù) $length = strlen(“php”)/此時(shí)$length為3 /sin()和asin()是數(shù)學(xué)正弦和反正弦函數(shù) $result = sin(asin(1);/$result是arcsin

12、(1)的正弦 /unlink()刪除一個(gè)文件 $result = unlink(“functions.txt”);/如果不成功則為false,在第一個(gè)例子中給函數(shù)strlen()一個(gè)參數(shù)“PHP”,該函數(shù)返回給定字符串中的字符數(shù)。在這里,返回值3被賦給變量$length。這是最簡(jiǎn)單和最普通的使用函數(shù)的方法。 第二個(gè)例子傳遞asin(1)的結(jié)果給函數(shù)sin()。因?yàn)檎液头凑液瘮?shù)互為反函數(shù),所以對(duì)任何值的反正弦求正弦值將總是返回和原來相同的值。 在最后一個(gè)例子中給函數(shù)unlink()一個(gè)文件名,以嘗試刪除該文件,與許多函數(shù)一樣,操作失敗時(shí)該函數(shù)返回false。這個(gè)例子允許使用另一個(gè)內(nèi)置函數(shù)di

13、e()和邏輯操作符的短路屬性。,3.3.1函數(shù)-調(diào)用函數(shù),3.3.2函數(shù)-定義函數(shù),要定義一個(gè)函數(shù),可以使用下面的語(yǔ)法結(jié)構(gòu): function ,; echo 希望明天下雨; echo 函數(shù)還沒有被調(diào)用呢!; foo(); /開始調(diào)用該函數(shù) echo 函數(shù)調(diào)用成功!; ?,實(shí)例:,3.3.3函數(shù)-函數(shù)中變量的作用域,函數(shù)foo()中變量$a和外部變量$a是兩個(gè)不同的變量,盡管foo()使用了相加賦值操作符,但是外部的$a的值在一頁(yè)的生命周期中始終是3。而且函數(shù)中的$a的值為2。,3.3.4函數(shù)-函數(shù)參數(shù),通過函數(shù)定義進(jìn)行聲明,函數(shù)可以有任意數(shù)目的參數(shù)。 有兩種不同的為函數(shù)傳遞參數(shù)的方法。第一種

14、也是最普遍的一種就是按值(value)傳遞,另一種是按引用(reference)傳遞。,3.3.4.1函數(shù)-按值傳遞參數(shù),大多數(shù)情況是按值傳遞參數(shù),參數(shù)可以是任何形式有效的表達(dá)式。計(jì)算表達(dá)式的值,并且將結(jié)果賦值給函數(shù)中適當(dāng)?shù)淖兞俊?function doubler($value) $value = $value * 2; $a = 3; doubler($a); echo $a;,3.3.4.2函數(shù)-按引用傳遞參數(shù),按引用傳遞參數(shù)允許你忽略普通的作用域規(guī)則,而給出一個(gè)直接訪問變量的功能。要按引用傳遞,參數(shù)必須是變量;在參數(shù)列表中的變量名前家上一個(gè) ,默認(rèn)情況下,值是復(fù)制出的函數(shù)。如果一個(gè)函數(shù)在

15、它名字之前用 function /改變$name1,3.3.5函數(shù)-函數(shù)的返回值,從函數(shù)返回多個(gè)值: Function show_personl_info() $user =“John”; $user=“john_”; $user=; return $user; List($name,$email,$tel)=show_personl_info(); Echo $name,$email,$tel;,3.3.6函數(shù)-可變函數(shù)以及匿名函數(shù),(一)可變函數(shù) 因?yàn)橛锌勺兊淖兞浚钥梢曰谧兞恐嫡{(diào)用函數(shù)。例如,考慮這種情況,一個(gè)變量被用于決定三個(gè)函數(shù)之中哪一個(gè)被調(diào)用:,swi

16、tch ($which) case first: first(); break; case second: second(); break; case third: third(); break; ,; function doubler2($value) $value = $value * 2; echo $value,; function doubler3($value) $value = $value * 3; echo $value,; ?,3.3.6函數(shù)-可變函數(shù),一些PHP的函數(shù)用你提供的函數(shù)來完成他們的部分工作。例如,函數(shù)usort()使用你創(chuàng)建的函數(shù),并將其作為參數(shù)傳遞給它來確定

17、一個(gè)數(shù)組中各項(xiàng)的排序順序。 如前所示,盡管可以為這樣的目的定義一個(gè)函數(shù),但是這些函數(shù)傾向于局部化和臨時(shí)性,為了反映回調(diào)的短暫特性,我們創(chuàng)建和使用一個(gè)匿名函數(shù)(anonymous function)。 可以用create_function()創(chuàng)建一個(gè)匿名函數(shù)。這個(gè)函數(shù)帶兩個(gè)參數(shù),第一個(gè)參數(shù)描述該匿名函數(shù)接受的參數(shù),第二個(gè)參數(shù)是實(shí)際的代碼。以下代碼將返回為該函數(shù)隨機(jī)產(chǎn)生的名字: $func_name = create_function(args_string,code_string);,下面是一個(gè)展示使用usort()的例子:,3.3.6函數(shù)-匿名函數(shù),通過usort()(使用匿名函數(shù))按字符串的長(zhǎng)度順序?qū)υ摂?shù)組進(jìn)行排序。,$lambda = create_function($a,$b,return(strlen($a)-strlen($b);); $array = array(really long string here,boy, this, middling length , larger )

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論