版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章PHP 語法基礎(chǔ)變量與常量選擇語句與循環(huán)語句包含語句數(shù)據(jù)類型與運(yùn)算符函數(shù)與數(shù)組標(biāo)簽語法目錄2.1【案例1】顯示服務(wù)器信息2.2【案例2】商品價格計算2.3【案例3】判斷學(xué)生成績等級2.4【案例4】判斷是否為閏年2.5【案例5】打印金字塔2.7【案例7】PHP獲取文件后綴目錄2.6【案例6】九九乘法表2.8【案例8】訂貨單顯示2.9【案例9】雙色球2.10【案例10】網(wǎng)頁布局2.1【案例1】顯示服務(wù)器信息案例分析需求分析:由于PHP是一門嵌入式腳本語言,它經(jīng)常嵌入到HTML代碼中使用。下面通過在HTML表格里嵌入PHP代碼來顯示PHP版本號、解析PHP的操作系統(tǒng)類型以及當(dāng)前服務(wù)器時間,從而了解PHP標(biāo)記、輸出語句、預(yù)定義常量以及時間日期函數(shù)的使用。2.1【案例1】顯示服務(wù)器信息設(shè)計思路:(1)使用HTML編寫表格,用于顯示服務(wù)器信息。(2)由于服務(wù)器信息要從PHP中獲取,因此需在表格中的指定位置嵌入PHP代碼。(3)使用瀏覽器查看此PHP文件的運(yùn)行結(jié)果。案例分析2.1【案例1】顯示服務(wù)器信息案例展示【案例1】顯示服務(wù)器信息2.1【案例1】顯示服務(wù)器信息實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:[點(diǎn)擊查看案例1]2.1【案例1】顯示服務(wù)器信息知識點(diǎn)講解1、PHP標(biāo)記2、輸出語句3、預(yù)定義常量4、UNIX時間戳5、格式化輸出2.1【案例1】顯示服務(wù)器信息1、PHP標(biāo)記(1)標(biāo)準(zhǔn)標(biāo)記——“<?php”和“?>”示例:“<?php”是開始標(biāo)記?!?>”是結(jié)束標(biāo)記。文件是純PHP代碼時,可省略結(jié)束標(biāo)記,且開始標(biāo)記最好頂格書寫。<?phpecho"生命在于運(yùn)動!";?>2.1【案例1】顯示服務(wù)器信息1、PHP標(biāo)記(2)短標(biāo)記——“<?”和“?>”示例:短標(biāo)記在使用時,需將php.ini文件中short_open_tag的值設(shè)置為on。重新啟動Apache服務(wù)器。需要注意的是,為了保證程序的兼容性,不推薦使用這種標(biāo)記。<?echo"生命在于運(yùn)動!";?>2.1【案例1】顯示服務(wù)器信息知識點(diǎn)講解1、PHP標(biāo)記2、輸出語句3、預(yù)定義常量4、UNIX時間戳5、格式化輸出2.1【案例1】顯示服務(wù)器信息2、輸出語句echo是PHP中用于輸出的語句,可將緊跟其后的字符串、變量、常量的值顯示在頁面中。示例:頁面輸出結(jié)果:“來吧小伙伴們…現(xiàn)在開啟PHP學(xué)習(xí)之旅!”?!?”是字符串連接符,用于連接字符串、變量或常量。<?phpecho'來吧小伙伴們...'.'現(xiàn)在開啟PHP學(xué)習(xí)之旅!';?>2.1【案例1】顯示服務(wù)器信息2、輸出語句在使用echo輸出字符串時,還可以使用“,”連接兩個字符串。示例:頁面輸出結(jié)果:“來吧小伙伴們…現(xiàn)在開啟PHP學(xué)習(xí)之旅!”<?phpecho'來吧小伙伴們...','現(xiàn)在開啟PHP學(xué)習(xí)之旅!';?>2.1【案例1】顯示服務(wù)器信息知識點(diǎn)講解1、PHP標(biāo)記2、輸出語句3、預(yù)定義常量4、UNIX時間戳5、格式化輸出2.1【案例1】顯示服務(wù)器信息3、預(yù)定義常量預(yù)定義常量可方便開發(fā)人員獲取PHP中的信息,需要時直接使用或通過echo輸出就可以獲取相關(guān)的信息。2.1【案例1】顯示服務(wù)器信息3、預(yù)定義常量常量名功能描述PHP_VERSION獲取PHP的版本信息,如5.4.38PHP_OS獲取解析PHP的操作系統(tǒng)類型,如:WINNTPHP_INT_MAX獲取PHP中Integer類型的最大值2147483647PHP_INT_SIZE獲取PHP中Integer值的字長,如:4E_ERROR表示運(yùn)行時致命性錯誤,使用1表示E_WARNING表示運(yùn)行時警告錯誤(非致命),使用2表示E_PARSE表示編譯時解析錯誤,使用4表示E_NOTICE表示運(yùn)行時提醒信息,使用8表示常用預(yù)定義常量2.1【案例1】顯示服務(wù)器信息知識點(diǎn)講解1、PHP標(biāo)記2、輸出語句3、預(yù)定義常量4、UNIX時間戳5、格式化輸出2.1【案例1】顯示服務(wù)器信息4、UNIX時間戳UNIX時間戳是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現(xiàn)在的總秒數(shù)。其中,1970年01月01日零點(diǎn)也叫UNIX紀(jì)元。2.1【案例1】顯示服務(wù)器信息4、UNIX時間戳通常,在PHP中使用time()函數(shù)獲取當(dāng)前時間的時間戳。示例:輸出了從UNIX紀(jì)元到當(dāng)前時間的時間戳。<?phpechotime();?>2.1【案例1】顯示服務(wù)器信息知識點(diǎn)講解1、PHP標(biāo)記2、輸出語句3、預(yù)定義常量4、UNIX時間戳5、格式化輸出2.1【案例1】顯示服務(wù)器信息5、格式化輸出(1)格式化日期示例:格式化后的日期格式為“年-月-日”?!?”可隨意定義。Y代表4位數(shù)字完整表示的年份。m代表使用數(shù)字表示且有前導(dǎo)零的月份。d表示月份中的第幾天,有前導(dǎo)零的2位數(shù)字。<?phpechodate('Y-m-d',time());?>2.1【案例1】顯示服務(wù)器信息5、格式化輸出(2)格式化時間示例:格式化后的時間格式為“時:分:秒”?!?”可隨意定義。H表示小時(有前導(dǎo)零的24小時格式)。i表示有前導(dǎo)零的分鐘數(shù)。s代表有前導(dǎo)零的秒數(shù)。<?phpechodate('H:i:s',time());?>2.2【案例2】商品價格計算案例分析需求分析:若用戶在一個全場8折的網(wǎng)站中購買了2斤香蕉、1斤蘋果和3斤橘子,它們的價格分別為7.99元/斤、6.89元/斤、3.99元/斤,那么如何使用PHP程序來計算此用戶實(shí)際需支付的費(fèi)用呢?下面通過PHP中提供的變量與常量、算術(shù)運(yùn)算符以及賦值運(yùn)算符等相關(guān)知識來實(shí)現(xiàn)PHP中的商品價格計算。設(shè)計思路:(1)使用PHP提供的變量保存用戶所購買商品的名稱、價格及數(shù)量。(2)由于網(wǎng)站中所有商品的折扣相同,所以使用PHP提供的常量來保存。(3)分別計算用戶購買香蕉、蘋果和橘子的價格。(4)計算打折后所有商品的總價格。(5)以表格的形式顯示用戶所購買的商品信息及該用戶實(shí)際需要支付的費(fèi)用。案例分析2.2【案例2】商品價格計算案例展示【案例2】商品價格計算2.2【案例2】商品價格計算實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:2.2【案例2】商品價格計算[點(diǎn)擊查看案例2]知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋1、注釋注釋是對程序代碼的解釋和說明,使代碼更易于閱讀與維護(hù),在解析時會被解析器忽略。2.2【案例2】商品價格計算1、注釋在PHP中,最常用的兩種注釋分別為:單行注釋“//”和多行注釋“/*……*/”。需要注意的是,多行注釋可以嵌套單行注釋,但是不能再嵌套多行注釋。2.2【案例2】商品價格計算知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋2、標(biāo)識符在網(wǎng)站開發(fā)過程中,經(jīng)常需要在程序中定義一些符號來標(biāo)記一些名稱,如:類名、方法名、函數(shù)名、變量名等,這些符號被稱為標(biāo)識符。2.2【案例2】商品價格計算2、標(biāo)識符在PHP中,定義標(biāo)識符要遵循一定的規(guī)則,具體如下:標(biāo)識符只能由字母、數(shù)字和下劃線組成。標(biāo)識符可以由一個或多個字符組成,必須以字母或下劃線開頭。當(dāng)標(biāo)識符用作變量名時,區(qū)分大小寫。若標(biāo)識符由多個單詞組成,那么應(yīng)使用下劃線進(jìn)行分割,
如:user_name。2.2【案例2】商品價格計算2、標(biāo)識符舉例說明:合法標(biāo)識符:itcast、itcast88、_itcast、username、password等。非法標(biāo)識符:66itcast、itcast、123、@itcast等。2.2【案例2】商品價格計算知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋3、關(guān)鍵字關(guān)鍵字是編程語言里事先定義好并賦予了特殊含義的單詞,也稱作保留字。如:class關(guān)鍵字用于定義類,echo用于輸出數(shù)據(jù),function用于定義函數(shù)。2.2【案例2】商品價格計算3、關(guān)鍵字2.2【案例2】商品價格計算andorXor__FILE__exception__LINE__array()Asbreakcaseclassconstcontinue declaredefaultdie()doechoelseelseifempty()enddeclareendforendforeachendifendswitchendwhileeval()exit()extendsforforeachfunctionglobalifincludeinclude_onceisset()list()newprintrequirerequire_oncereturnstaticswitchunset()usevarwhile__FUNCTION____CLASS____METHOD__finalphp_user_filterinterfaceimplementsextendspublicprivateprotectedabstractclonetrycatchthrowthisPHP5中所有的關(guān)鍵字3、關(guān)鍵字在使用上面列舉的關(guān)鍵字時,需要注意以下兩個地方:關(guān)鍵字不能作為常量、函數(shù)名或類名使用。關(guān)鍵字雖然可作為變量名使用,但是容易導(dǎo)致混淆,不建議使用。2.2【案例2】商品價格計算知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋4、變量與常量變量的概念:變量就是保存可變數(shù)據(jù)的容器。2.2【案例2】商品價格計算4、變量與常量變量的命名:變量是由$符號和變量名組成的,其中變量名的命名規(guī)則與標(biāo)識符相同。例如:合法變量:$test、$_test、$age、$_name非法變量:$123、$*math、$@u、$6_it2.2【案例2】商品價格計算2.2【案例2】商品價格計算4、變量與常量變量的聲明:由于PHP是弱類型語言,所以變量不需要事先聲明,就可以直接進(jìn)行賦值使用。4、變量與常量變量的賦值:PHP中的變量賦值分為兩種,一種是默認(rèn)的傳值賦值,另一種是引用賦值。2.2【案例2】商品價格計算4、變量與常量(1)傳值賦值——就是指整個原始表達(dá)式的值被賦予到目標(biāo)變量。示例:當(dāng)變量$age的值修改為100時,$num的值依然是12。當(dāng)對變量名不確定的情況時,可以使用{}來對變量進(jìn)行界定,這是由于“{”無法被轉(zhuǎn)義,只有“$”緊挨著“{”時才會被識別。2.2【案例2】商品價格計算$age=12;$num=$age;$age=100;echo$num;4、變量與常量(2)引用賦值——就是在要賦值的變量前添加“&”符號。示例:當(dāng)變量$age的值修改為100時,$num的值也隨之變?yōu)?00。由于引用賦值的方式相當(dāng)于給變量起一個別名,當(dāng)一個變量的值發(fā)生改變時,另一個變量也隨之變化。2.2【案例2】商品價格計算$age=12;$num=&$age;$age=100;echo$num;4、變量與常量常量的概念:常量是指在腳本運(yùn)行過程中值始終保存不變的量。它的特點(diǎn)是一旦被定義就不能被修改或重新定義。例如:數(shù)學(xué)中常用的圓周率π就是一個常量,其值就是固定且不能被改變的。2.2【案例2】商品價格計算4、變量與常量PHP中通常使用define()函數(shù)或const關(guān)鍵字來定義常量。(1)define()函數(shù)示例:define()函數(shù)的第一個參數(shù)表示常量的名稱,define()函數(shù)的第二個參數(shù)表示常量值,define()函數(shù)的第三個參數(shù)表示常量對大小寫是否敏感(默認(rèn)值為false)。當(dāng)為true時表示不敏感,如在上述實(shí)例中輸出值都是itcast。2.2【案例2】商品價格計算define('CON','itcast',true);echoCON;echocon;04、變量與常量值得一提的是,輸出常量還可使用constant()函數(shù),其用法如下所示:要想使用constant()函數(shù)獲取常量的值,只需將其唯一的參數(shù)設(shè)為常量的名稱即可。2.2【案例2】商品價格計算define('CON','itcast');echoconstant('CON');4、變量與常量(2)const關(guān)鍵字示例:使用const關(guān)鍵字定義了一個名為pai,值為3.14的常量。2.2【案例2】商品價格計算constpai=3.14;echopai;知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋5、算術(shù)運(yùn)算符在數(shù)學(xué)運(yùn)算中最常見的就是加減乘除運(yùn)算,也被稱為四則運(yùn)算。PHP中的算術(shù)運(yùn)算符就是用來處理四則運(yùn)算的符號,這是最簡單、最常用的運(yùn)算符號。2.2【案例2】商品價格計算5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算運(yùn)算符意義范例結(jié)果+加5+510-減6-42*乘3*412/除5/51%取模(即算術(shù)中的求余數(shù))7%52算術(shù)運(yùn)算符及范例5、算術(shù)運(yùn)算符在實(shí)際應(yīng)用過程中還需要注意以下兩點(diǎn):四則混合運(yùn)算時,運(yùn)算順序要遵循數(shù)學(xué)中“先乘除后加減”的原則。在進(jìn)行取模運(yùn)算時,運(yùn)算結(jié)果的正負(fù)取決于被模數(shù)(%左邊的數(shù))的符號,與模數(shù)(%右邊的數(shù))的符號無關(guān)。如:(-8)%7=-1,而8%(-7)=1。2.2【案例2】商品價格計算知識點(diǎn)講解2、標(biāo)識符3、關(guān)鍵字4、變量與常量5、算術(shù)運(yùn)算符2.2【案例2】商品價格計算6、賦值運(yùn)算符1、注釋6、賦值運(yùn)算符賦值運(yùn)算符是一個二元運(yùn)算符,即它有兩個操作數(shù)??偸前鸦举x值運(yùn)算符(=)右邊的值賦給左邊的變量或常量。“=”表示賦值運(yùn)算符,而非數(shù)學(xué)意義上的相等的關(guān)系。2.2【案例2】商品價格計算6、賦值運(yùn)算符2.2【案例2】商品價格計算運(yùn)算符意義范例結(jié)果=賦值$a=3;$b=2;$a=3;$b=2;+=加等于$a=3;$b=2;$a+=$b;$a=5;$b=2;-=減等于$a=3;$b=2;$a-=$b;$a=1;$b=2;*=乘等于$a=3;$b=2;$a*=$b;$a=6;$b=2;/=除等于$a=3;$b=2;$a/=$b;$a=1.5;$b=2;%=模等于$a=3;$b=2;$a%=$b;$a=1;$b=2;.=連接等于$a='abc';$a.='def';$a='abcdef'賦值運(yùn)算符及范例6、賦值運(yùn)算符在PHP中一條賦值語句可對多個變量進(jìn)行賦值。示例:賦值語句的執(zhí)行順序是從右到左,即先將3賦值給變量$third。然后再把$third的值賦值給變量$second。最后把變量$second的值賦值給變量$first,完成對三個變量的同時賦值。2.2【案例2】商品價格計算$first;$second;$third;$first=$second=$third=3;//為三個變量同時賦值6、賦值運(yùn)算符除“=”外的其他運(yùn)算符均為特殊賦值運(yùn)算符,在使用過程中需要注意以下兩點(diǎn):(1)“+=”、“-=”、“*=”、“/=”、“%=”的用法類似,這里以“+=”為例進(jìn)行講解。示例:“+=”表示變量$a先與4進(jìn)行相加運(yùn)算。然后再將運(yùn)算結(jié)果賦值給變量$a。最后變量$a的值為9。2.2【案例2】商品價格計算$a=5;$a+=4;$a=5;$a=$a+4;相當(dāng)于6、賦值運(yùn)算符(2)“.=”表示對兩個字符串進(jìn)行連接操作。示例:“.=”表示變量$str先與“itcast”字符串進(jìn)行連接。然后將連接后得到的新字符串再賦值給變量$str。最后變量$str的值為“welcometoitcast”。2.2【案例2】商品價格計算$str='welcometo';$str.='itcast'; $str='welcometo';$str=$str.'itcast';相當(dāng)于2.3【案例3】判斷學(xué)生成績等級案例分析需求分析:假設(shè)學(xué)生成績范圍在0~100分之間,規(guī)定90~100之間的分?jǐn)?shù)為A級,80~89之間的分?jǐn)?shù)為B級,70~79之間的分?jǐn)?shù)為C級,60~69之間的分?jǐn)?shù)為D級,0~59之間的分?jǐn)?shù)為E級。那么如何通過一個給定的學(xué)生分?jǐn)?shù)來判斷其成績等級呢?下面通過PHP中提供的數(shù)據(jù)類型、比較運(yùn)算符、邏輯運(yùn)算符以及選擇結(jié)構(gòu)語句等相關(guān)知識來實(shí)現(xiàn)學(xué)生成績等級的判斷。設(shè)計思路:(1)定義兩個變量,用于保存給定的學(xué)生姓名與分?jǐn)?shù)。(2)判斷給定的學(xué)生分?jǐn)?shù)是否為一個合格的分?jǐn)?shù)值。(3)按照成績等級劃分規(guī)定,使用if…else條件判斷語句判斷該學(xué)生的成績等級。(4)以友好格式顯示學(xué)生信息以及成績等級判斷結(jié)果。案例分析2.3【案例3】判斷學(xué)生成績等級案例展示【案例3】判斷學(xué)生成績等級2.3【案例3】判斷學(xué)生成績等級實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:2.3【案例3】判斷學(xué)生成績等級[點(diǎn)擊查看案例3]知識點(diǎn)講解1、數(shù)據(jù)類型2、比較運(yùn)算符3、邏輯運(yùn)算符4、選擇結(jié)構(gòu)語句2.3【案例3】判斷學(xué)生成績等級1、數(shù)據(jù)類型在網(wǎng)站開發(fā)的過程中,經(jīng)常需要操作數(shù)據(jù),而每個數(shù)據(jù)都有其對應(yīng)的類型。PHP中支持3種數(shù)據(jù)類型,分別為標(biāo)量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型及特殊數(shù)據(jù)類型,PHP中所有的數(shù)據(jù)類型如下圖所示。2.3【案例3】判斷學(xué)生成績等級1、數(shù)據(jù)類型PHP中變量的數(shù)據(jù)類型通常不是開發(fā)人員設(shè)定的,而是根據(jù)該變量使用的上下文在運(yùn)行時決定的。復(fù)合數(shù)據(jù)類型及特殊數(shù)據(jù)類型將會在接下來的章節(jié)中詳細(xì)講解。下面對標(biāo)量數(shù)據(jù)類型進(jìn)行詳細(xì)的介紹。2.3【案例3】判斷學(xué)生成績等級1、數(shù)據(jù)類型(1)布爾型布爾型是PHP中較常用的數(shù)據(jù)類型之一,通常用于邏輯判斷,它只有true和false兩個值,表示事物的“真”和“假”,并且不區(qū)分大小寫。示例:需要注意的是,在特殊情況下其他數(shù)據(jù)類型也可以表示布爾值,比如:0表示false,1表示true。2.3【案例3】判斷學(xué)生成績等級$flag1=true; //將true賦值給變量$flag1$flag2=false; //將false賦值為變量$flag21、數(shù)據(jù)類型(2)整型整型用來表示整數(shù),它可以由十進(jìn)制、八進(jìn)制和十六進(jìn)制指定,且前面加上“+”或“-”符號,可以表示正數(shù)或負(fù)數(shù)。八進(jìn)制數(shù)使用0~7表示,且數(shù)字前必須加上0。十六進(jìn)制數(shù)使用0~9與A~F表示,數(shù)字前必須加上0x。2.3【案例3】判斷學(xué)生成績等級1、數(shù)據(jù)類型(2)整型示例:八進(jìn)制和十六進(jìn)制表示的都是十進(jìn)制數(shù)值59。若給定數(shù)值大于系統(tǒng)環(huán)境的整型所能表示的最大范圍,會發(fā)生數(shù)據(jù)溢出,導(dǎo)致程序出現(xiàn)問題。如:32位系統(tǒng)的取值范圍是:-231~231-1。2.3【案例3】判斷學(xué)生成績等級$octonary=073; //八進(jìn)制數(shù)$decimal=59; //十進(jìn)制數(shù)$sexadecimal=0x3b; //十六進(jìn)制數(shù)1、數(shù)據(jù)類型(3)浮點(diǎn)型浮點(diǎn)型可以保存浮點(diǎn)數(shù)或整數(shù),浮點(diǎn)數(shù)是程序中表示小數(shù)的一種方法,也可以是整數(shù),在PHP中,通常有兩種方式表示浮點(diǎn)數(shù):標(biāo)準(zhǔn)格式和科學(xué)計數(shù)法格式。示例:不管采用哪種格式表示,浮點(diǎn)數(shù)的有效位數(shù)都是14位。有效位數(shù)就是從最左邊第一個不為0的數(shù)開始,直到末尾數(shù)的個數(shù),且不包括小數(shù)點(diǎn)。2.3【案例3】判斷學(xué)生成績等級$fnum1=1.759; //標(biāo)準(zhǔn)格式$fnum2=-4.382;//標(biāo)準(zhǔn)格式$fnum3=3.14E5;//科學(xué)計數(shù)法格式$fnum4=7.469E-3;//科學(xué)計數(shù)法格式1、數(shù)據(jù)類型(4)字符串型字符串是由連續(xù)的字母、數(shù)字或字符組成的字符序列。在PHP中,通常使用單引號或雙引號表示字符串。示例:變量$area在雙引號字符串中被解析為China,而在單引號字符串中原樣輸出。2.3【案例3】判斷學(xué)生成績等級$name='Tom';$area='China';echo$name."comefrom$area";//輸出結(jié)果為:TomcomefromChinaecho$name.'comefrom$area';//輸出結(jié)果為:Tomcomefrom$area1、數(shù)據(jù)類型(4)字符串型值得一提的是,PHP的字符串中可以使用轉(zhuǎn)義字符。例如:在雙引號字符串中使用雙引號時,可以使用“\””來表示。雙引號字符串還支持換行符“\n”、制表符“\t”等轉(zhuǎn)義字符的使用。而單引號字符串只支持“’”和“\”的轉(zhuǎn)義。2.3【案例3】判斷學(xué)生成績等級知識點(diǎn)講解1、數(shù)據(jù)類型2、比較運(yùn)算符3、邏輯運(yùn)算符4、選擇結(jié)構(gòu)語句2.3【案例3】判斷學(xué)生成績等級2、比較運(yùn)算符比較運(yùn)算符用來對兩個變量或表達(dá)式進(jìn)行比較,其結(jié)果是一個布爾類型的true或false。2.3【案例3】判斷學(xué)生成績等級2、比較運(yùn)算符運(yùn)算符運(yùn)算范例($x=5)結(jié)果==等于$x==4false!=不等于$x!=4true<>
不等于$x<>4true===恒等$x===5true!==不恒等$x!==’5’true>
大于$x>5false>=大于或等于$x>=5true<
小于$x<5false<=小于或等于$x<=5true比較運(yùn)算符及范例2.3【案例3】判斷學(xué)生成績等級2、比較運(yùn)算符在實(shí)際開發(fā)中還需要注意以下兩點(diǎn):對于兩個數(shù)據(jù)類型不相同的數(shù)據(jù)進(jìn)行比較時,PHP會自動的將其轉(zhuǎn)換成相同類型的數(shù)據(jù)后再進(jìn)行比較,如:3與3.14進(jìn)行比較時,首先會將3轉(zhuǎn)換成浮點(diǎn)型3.0,然后再與3.14進(jìn)行比較。運(yùn)算符“===”與“!==”在進(jìn)行比較時,不僅要比較數(shù)值是否相等,還要比較其數(shù)據(jù)類型是否相等。而“==”和“!=”運(yùn)算符在比較時,只比較其值是否相等。2.3【案例3】判斷學(xué)生成績等級知識點(diǎn)講解1、數(shù)據(jù)類型2、比較運(yùn)算符3、邏輯運(yùn)算符4、選擇結(jié)構(gòu)語句2.3【案例3】判斷學(xué)生成績等級3、邏輯運(yùn)算符邏輯運(yùn)算符就是在程序開發(fā)中用于邏輯判斷的符號,其返回值類型是布爾類型。2.3【案例3】判斷學(xué)生成績等級3、邏輯運(yùn)算符運(yùn)算符運(yùn)算范例結(jié)果&&與$a&&$b$a和$b都為true,結(jié)果為true,否則為false||或$a||$b$a和$b中至少有一個為true,則結(jié)果為true,否則為false!非!$a若$a為false,結(jié)果為true,否則相反xor異或$axor$b$a和$b一個為true,一個為false,結(jié)果為true,否則為falseand與$aand$b與&&相同,但優(yōu)先級較低or或$aor$b與||相同,但優(yōu)先級較低邏輯運(yùn)算符及范例2.3【案例3】判斷學(xué)生成績等級3、邏輯運(yùn)算符雖然“&&”、“||”與“and”、“or”的功能相同,但是前者比后者優(yōu)先級別高。對于“與”操作和“或”操作,在實(shí)際開發(fā)中需要注意以下兩點(diǎn):當(dāng)使用“&&”連接兩個表達(dá)式時,如果左邊表達(dá)式的值為false,則右邊的表達(dá)式不會執(zhí)行。當(dāng)使用“||”連接兩個表達(dá)式時,如果左邊表達(dá)式的值為true,則右邊的表達(dá)式不會執(zhí)行。2.3【案例3】判斷學(xué)生成績等級知識點(diǎn)講解1、數(shù)據(jù)類型2、比較運(yùn)算符3、邏輯運(yùn)算符4、選擇結(jié)構(gòu)語句2.3【案例3】判斷學(xué)生成績等級4、選擇結(jié)構(gòu)語句所謂選擇結(jié)構(gòu)語句,就是對語句中的條件進(jìn)行判斷,進(jìn)而通過不同的判斷結(jié)果執(zhí)行不同的語句。PHP中常用的選擇結(jié)構(gòu)語句有if、if…else、if…elseif…else和switch語句。2.3【案例3】判斷學(xué)生成績等級4、選擇結(jié)構(gòu)語句(1)if語句if語句也稱為單分支語句,當(dāng)滿足某種條件時,就進(jìn)行某種處理。語法:判斷條件是一個布爾值,當(dāng)該值為true時,執(zhí)行“{}”中的代碼塊,否則不進(jìn)行任何處理。當(dāng)代碼塊中只有一條語句時,“{}”可以省略。2.3【案例3】判斷學(xué)生成績等級if(判斷條件){
代碼塊;}4、選擇結(jié)構(gòu)語句(1)if語句流程圖:2.3【案例3】判斷學(xué)生成績等級4、選擇結(jié)構(gòu)語句(2)if…else語句if…else語句也稱為雙分支語句,當(dāng)滿足某種條件時,就進(jìn)行某種處理,否則進(jìn)行另一種處理。語法:當(dāng)判斷條件為true時,執(zhí)行代碼塊1。當(dāng)當(dāng)判斷條件為false時,執(zhí)行代碼塊2。2.3【案例3】判斷學(xué)生成績等級if(判斷條件){ 代碼塊1;}else{ 代碼塊2;}4、選擇結(jié)構(gòu)語句(2)if…else語句流程圖:2.3【案例3】判斷學(xué)生成績等級4、選擇結(jié)構(gòu)語句(3)if…elseif…else語句if…elseif…else語句也稱為多分支語句,用于對多種條件進(jìn)行判斷,并進(jìn)行不同處理。語法:2.3【案例3】判斷學(xué)生成績等級if(條件1){ 代碼塊1;}elseif(條件2){ 代碼塊2;}...elseif(條件n){ 代碼段n;}else{ 代碼段n+1;}當(dāng)判斷條件1為true時,則執(zhí)行代碼塊1。否則繼續(xù)判斷條件2,若為true,則執(zhí)行代碼段2。以此類推,若所有條件都為false,則執(zhí)行代碼段n+1。4、選擇結(jié)構(gòu)語句(3)if…elseif…else語句流程圖:2.3【案例3】判斷學(xué)生成績等級4、選擇結(jié)構(gòu)語句(4)switch語句switch語句也是多分支語句,它的好處就是使代碼更加清晰簡潔、便于讀者閱讀。語法:首先計算表達(dá)式的值(該值不能為數(shù)組或?qū)ο螅?。然后將獲得的值與case中的值依次比較,若相等,則執(zhí)行case后的對應(yīng)代碼塊;若沒有匹配的值,則執(zhí)行default中的代碼塊。最后,當(dāng)遇到break語句時,跳出switch語句。2.3【案例3】判斷學(xué)生成績等級switch(表達(dá)式){ case值1:代碼塊1;break; case值2:代碼塊2;break; ... default:代碼塊n;}2.4【案例4】判斷是否為閏年案例分析需求分析:閏年是為了彌補(bǔ)人為歷法規(guī)定造成的年度天數(shù)與地球?qū)嶋H公轉(zhuǎn)周期的時間差,那么如何計算哪一年是閏年呢?下面通過PHP程序來判斷用戶給定的年份是否為閏年,從而掌握PHP中數(shù)據(jù)類型轉(zhuǎn)換、三元運(yùn)算符以及運(yùn)算符的優(yōu)先級的使用。設(shè)計思路:(1)使用變量保存給定的年份(要判斷是否為閏年的年份)如:$year=2008。(2)使用學(xué)過的if…else條件判斷語句完成對閏年的判斷。(3)利用PHP提供的三元運(yùn)算符簡化對閏年判斷的實(shí)現(xiàn)。(4)使用瀏覽器輸出給定的年份以及判斷的結(jié)果案例分析2.4【案例4】判斷是否為閏年案例展示【案例4】判斷是否為閏年2.4【案例4】判斷是否為閏年實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:2.4【案例4】判斷是否為閏年[點(diǎn)擊查看案例4]知識點(diǎn)講解1、數(shù)據(jù)類型轉(zhuǎn)換2、三元運(yùn)算符3、運(yùn)算符優(yōu)先級2.4【案例4】判斷是否為閏年1、數(shù)據(jù)類型轉(zhuǎn)換通常情況下,數(shù)據(jù)類型轉(zhuǎn)換分為自動類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。(1)自動類型轉(zhuǎn)換所謂自動類型轉(zhuǎn)換,指的是當(dāng)運(yùn)算需要或與期望的結(jié)果類型不匹配時,PHP將自動進(jìn)行類型轉(zhuǎn)換,無需開發(fā)人員做任何操作。在程序開發(fā)過程中,最常見的自動類型轉(zhuǎn)換有四種,分別為轉(zhuǎn)換成布爾型、轉(zhuǎn)換成整型、轉(zhuǎn)換成浮點(diǎn)型和轉(zhuǎn)成成字符串型。2.4【案例4】判斷是否為閏年1、數(shù)據(jù)類型轉(zhuǎn)換(1)自動類型轉(zhuǎn)換示例:$base是在進(jìn)行加法運(yùn)算時,PHP自動將$base轉(zhuǎn)換成整型。所以最后輸出的結(jié)果為int(5400)。2.4【案例4】判斷是否為閏年$base='1800';$salary=$base+3600;//通過var_dump()函數(shù)打印變量的值和數(shù)據(jù)類型var_dump($salary);//輸出結(jié)果為:int(5400)1、數(shù)據(jù)類型轉(zhuǎn)換(1)自動類型轉(zhuǎn)換當(dāng)字符串型轉(zhuǎn)換為整型時,若字符串是以數(shù)字開始,則使用該數(shù)值,否則轉(zhuǎn)換為0。示例:2.4【案例4】判斷是否為閏年if("123abc"==123){ echo'123'; //輸出結(jié)果為:123}if("abc"==0){ echo'456';//輸出結(jié)果為:456}1、數(shù)據(jù)類型轉(zhuǎn)換(2)強(qiáng)制類型轉(zhuǎn)換所謂強(qiáng)制類型轉(zhuǎn)換,就是在編寫程序時手動轉(zhuǎn)換數(shù)據(jù)類型,在要轉(zhuǎn)換的數(shù)據(jù)或變量之前加上“(目標(biāo)類型)”即可。2.4【案例4】判斷是否為閏年1、數(shù)據(jù)類型轉(zhuǎn)換(2)強(qiáng)制類型轉(zhuǎn)換2.4【案例4】判斷是否為閏年強(qiáng)制類型功能描述(boolean)強(qiáng)轉(zhuǎn)為布爾型(string)強(qiáng)轉(zhuǎn)為字符串型(integer)強(qiáng)轉(zhuǎn)為整型(float)強(qiáng)轉(zhuǎn)為浮點(diǎn)型(array)強(qiáng)轉(zhuǎn)為數(shù)組(object)強(qiáng)轉(zhuǎn)為對象列舉強(qiáng)制類型轉(zhuǎn)換1、數(shù)據(jù)類型轉(zhuǎn)換(2)強(qiáng)制類型轉(zhuǎn)換示例:2.4【案例4】判斷是否為閏年var_dump((boolean)-5.9);//運(yùn)行結(jié)果:bool(true)var_dump((integer)'hello');//運(yùn)行結(jié)果:int(0)var_dump((float)false);//運(yùn)行結(jié)果:float(0)var_dump((string)12);//運(yùn)行結(jié)果:string(2)"12"知識點(diǎn)講解1、數(shù)據(jù)類型轉(zhuǎn)換2、三元運(yùn)算符3、運(yùn)算符優(yōu)先級2.4【案例4】判斷是否為閏年2、三元運(yùn)算符三元運(yùn)算符又稱為三目運(yùn)算符,它是一種特殊的運(yùn)算符。語法:先求條件表達(dá)式的值,如果為真,則返回表達(dá)式1的執(zhí)行結(jié)果。如果條件表達(dá)式的值為假,則返回表達(dá)式2的執(zhí)行結(jié)果。2.4【案例4】判斷是否為閏年<條件表達(dá)式>?<表達(dá)式1>:<表達(dá)式2>知識點(diǎn)講解1、數(shù)據(jù)類型轉(zhuǎn)換2、三元運(yùn)算符3、運(yùn)算符優(yōu)先級2.4【案例4】判斷是否為閏年3、運(yùn)算符優(yōu)先級前面介紹了PHP的各種運(yùn)算符,那么若一個表達(dá)式中含有多個運(yùn)算符時,首先要明確表達(dá)式中各個運(yùn)算符參與運(yùn)算的先后順序,我們把這種順序稱為運(yùn)算符的優(yōu)先級。2.4【案例4】判斷是否為閏年3、運(yùn)算符優(yōu)先級2.4【案例4】判斷是否為閏年結(jié)合方向運(yùn)算符無new左[右++--~(int)(float)(string)(array)(object)@無instanceof右!左*/%左+-.左<<>>無==!====!==<>左&結(jié)合方向運(yùn)算符左^左|左&&左||左?:右=+=-=*=/=.=%=&=|=^=<<=>>=左and左xor左or左,運(yùn)算符的優(yōu)先級由上至下遞減,同一行的運(yùn)算符具有相同的優(yōu)先級。左表最后一個接右邊第一個3、運(yùn)算符優(yōu)先級左結(jié)合方向表示同級運(yùn)算符的執(zhí)行順序?yàn)閺淖蟮接?。右結(jié)合方向表示同級運(yùn)算符的執(zhí)行順序?yàn)閺挠业阶蟆T诒磉_(dá)式中,還有一個優(yōu)先級最高的運(yùn)算符:圓括號(),它可以提升其內(nèi)運(yùn)算符的優(yōu)先級。示例:2.4【案例4】判斷是否為閏年$num1=4+3*2; //輸出結(jié)果為10$num2=(4+3)*2;//輸出結(jié)果為142.5【案例5】打印金字塔案例分析需求分析:金字塔可以說是世界建筑的奇跡之一,其形狀呈三角形,那么如何使用程序代碼來打印如下所示的金字塔呢?下面通過PHP中提供的while循環(huán)語句和遞增遞減運(yùn)算符來實(shí)現(xiàn)這個功能,從而根據(jù)條件判斷使程序代碼按照一定規(guī)律的輸出。2.5【案例5】打印金字塔案例分析需求分析:從上圖可以看出,該金字塔使用星星“*”來表示,且一共5行,第1行1個星星,它的前面有4個空格,第2行3個星星,它的前面有3個空格,依次類推,第5行9個星星,前面沒有空格。通過以上規(guī)律,可以總結(jié)出該金字塔中星星與空格的計算公式,具體如下:每行星星前面空格數(shù)=金字塔的總行數(shù)-當(dāng)前所在行數(shù),如:當(dāng)前為第3行,空格數(shù)=5-3=2。每行星星數(shù)=當(dāng)前行數(shù)*2-1,如:當(dāng)前為第2行,星星數(shù)=2*2-1=3。設(shè)計思路:(1)初始化當(dāng)前行為第1行。(2)使用while循環(huán)判斷當(dāng)前行是否小于等于該金字塔的總行數(shù)。(3)計算每行星星前面空格數(shù)和每行星星數(shù)。(4)使用while循環(huán)每行星星前面的空格數(shù)和每行的星星數(shù)。案例分析2.5【案例5】打印金字塔案例展示【案例5】打印金字塔2.5【案例5】打印金字塔實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:2.5【案例5】打印金字塔[點(diǎn)擊查看案例5]知識點(diǎn)講解1、while循環(huán)語句2、遞增遞減運(yùn)算符2.5【案例5】打印金字塔1、while循環(huán)語句所謂循環(huán)語句,就是可以實(shí)現(xiàn)一段代碼重復(fù)執(zhí)行。而while循環(huán)語句,就是根據(jù)循環(huán)條件來判斷是否重復(fù)執(zhí)行這一段代碼。語法:{}”中的執(zhí)行語句稱為循環(huán)體。當(dāng)循環(huán)條件為true時,則執(zhí)行循環(huán)體。當(dāng)循環(huán)條件為false時,結(jié)束整個循環(huán)。當(dāng)循環(huán)條件永遠(yuǎn)為true時,會出現(xiàn)死循環(huán)。2.5【案例5】打印金字塔while(循環(huán)條件){
執(zhí)行語句 ......}1、while循環(huán)語句所謂循環(huán)語句,就是可以實(shí)現(xiàn)一段代碼重復(fù)執(zhí)行。而while循環(huán)語句,就是根據(jù)循環(huán)條件來判斷是否重復(fù)執(zhí)行這一段代碼。流程圖:2.5【案例5】打印金字塔1、while循環(huán)語句while循環(huán)語句除了上述形式外,還有do…while形式,雖然兩者的功能類似,但是當(dāng)循環(huán)條件為false的情況下,while語句會結(jié)束循環(huán),而do…while語句依然會再執(zhí)行一次。語法:首先執(zhí)行do后面“{}”中的循環(huán)體。然后再判斷循環(huán)條件,當(dāng)循環(huán)條件為true時,繼續(xù)執(zhí)行循環(huán)體。當(dāng)循環(huán)條件為false時,結(jié)束本次循環(huán)。2.5【案例5】打印金字塔do{ 執(zhí)行語句 ......}while(循環(huán)條件);1、while循環(huán)語句while循環(huán)語句除了上述形式外,還有do…while形式,雖然兩者的功能類似,但是當(dāng)循環(huán)條件為false的情況下,while語句會結(jié)束循環(huán),而do…while語句依然會再執(zhí)行一次。流程圖:2.5【案例5】打印金字塔知識點(diǎn)講解1、while循環(huán)語句2、遞增遞減運(yùn)算符2.5【案例5】打印金字塔2、遞增遞減運(yùn)算符遞增遞減運(yùn)算符也稱為自增自減運(yùn)算符,它可以看作是一種特定形式的復(fù)合賦值運(yùn)算符。2.5【案例5】打印金字塔2、遞增遞減運(yùn)算符如果運(yùn)算符(++或--)放在操作數(shù)的前面,則先進(jìn)行自增或自減運(yùn)算,再進(jìn)行其他運(yùn)算。如果運(yùn)算符放在操作數(shù)的后面,則先進(jìn)行其他運(yùn)算,再進(jìn)行自增或自減運(yùn)算。2.5【案例5】打印金字塔運(yùn)算符運(yùn)算范例結(jié)果++自增(前)$a=2;$b=++$a;$a=3;$b=3;++自增(后)$a=2;$b=$a++;$a=3;$b=2;--自減(前)$a=2;$b=--$a;$a=1;$b=1;--自減(后)$a=2;$b=$a--;$a=1;$b=2;遞增遞減運(yùn)算符及范例2.6【案例6】九九乘法表案例分析需求分析:九九乘法表體現(xiàn)了數(shù)字之間乘法的規(guī)律,成為了學(xué)生在學(xué)習(xí)數(shù)學(xué)時必不可少的一項(xiàng)內(nèi)容。那么如何使用程序代碼打印如下圖所示的九九乘法表呢?下面通過PHP提供的for循環(huán)語句來實(shí)現(xiàn)這個功能,從而了解并掌握while循環(huán)與for循環(huán)語句的特點(diǎn)、以及跳轉(zhuǎn)語句在循環(huán)中的作用。2.6【案例6】九九乘法表案例分析2.6【案例6】九九乘法表案例分析需求分析:從上圖可以看出,該九九乘法表呈樓梯臺階式,共9層,假設(shè)最頂層就是第1層,它由1個單元格組成,第2層由2個單元格組成,依次往下遞增,直到第9層由9個單元格組成。從而不難得到以下規(guī)律:每行星星前面空格數(shù)=金字塔的總行數(shù)-當(dāng)前所在行數(shù),如:當(dāng)前為第3行,空格數(shù)=5-3=2。每行星星數(shù)=當(dāng)前行數(shù)*2-1,如:當(dāng)前為第2行,星星數(shù)=2*2-1=3。設(shè)計思路:(1)初始化九九乘法的頂層為1,使用for循環(huán)的乘法表的層數(shù)。(2)使用for循環(huán)輸出每層中的單元格。(3)利用每層中單元格的個數(shù)找出乘數(shù)與被乘數(shù),進(jìn)行求積運(yùn)算。(4)將乘法運(yùn)算顯示在表格中。案例分析2.6【案例6】九九乘法表案例展示【案例6】九九乘法表2.6【案例6】九九乘法表實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:2.6【案例6】九九乘法表[點(diǎn)擊查看案例6]知識點(diǎn)講解1、for循環(huán)語句2、跳轉(zhuǎn)語句2.6【案例6】九九乘法表1、for循環(huán)語句PHP中的循環(huán)語句除2.5小節(jié)中提到的while循環(huán)語句外,還有for循環(huán)。語法:表達(dá)式1用于初始化。表達(dá)式2用于判斷循環(huán)條件。表達(dá)式3用于改變表達(dá)式1的值。2.6【案例6】九九乘法表for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ 執(zhí)行語句 ...}1、for循環(huán)語句PHP中的循環(huán)語句除2.5小節(jié)中提到的while循環(huán)語句外,還有for循環(huán)。流程圖:2.6【案例6】九九乘法表知識點(diǎn)講解1、for循環(huán)語句2、跳轉(zhuǎn)語句2.6【案例6】九九乘法表2、跳轉(zhuǎn)語句跳轉(zhuǎn)語句用于實(shí)現(xiàn)循環(huán)執(zhí)行過程中程序流程的跳轉(zhuǎn),PHP中常用的跳轉(zhuǎn)語句有break語句和continue語句,它們的區(qū)別在于break語句是終止當(dāng)前循環(huán),跳出循環(huán)體;而continue語句是結(jié)束本次循環(huán)的執(zhí)行,開始下一輪循環(huán)的執(zhí)行操作。2.6【案例6】九九乘法表2、跳轉(zhuǎn)語句示例:使用continue結(jié)束本次循環(huán),當(dāng)為偶數(shù)時,$i不進(jìn)行累加,當(dāng)為奇數(shù)時,對$i的值進(jìn)行累加,最終輸出的結(jié)果為2500。若將示例中的continue修改為break,則當(dāng)$i遞增到2時,該循環(huán)終止執(zhí)行,最終輸出的結(jié)果為1。2.6【案例6】九九乘法表$sum=0; //用于保存1~100內(nèi)的奇數(shù)和for($i=1;$i<=100;++$i){ if($i%2==0){ //若為偶數(shù),則不累加 continue;//結(jié)束本次循環(huán) } $sum+=$i; //累加奇數(shù)}echo'$sum='.$sum;2、跳轉(zhuǎn)語句break語句除了上述作用外,還可以指定跳出幾重循環(huán)。語法:參數(shù)n表示要跳出的循環(huán)數(shù)量,在多層循環(huán)嵌套中,可使用其跳出多重循環(huán)。2.6【案例6】九九乘法表breakn;2.7【案例7】PHP獲取文件后綴案例分析需求分析:開發(fā)電子商務(wù)網(wǎng)站時,系統(tǒng)經(jīng)常需要判斷用戶上傳文件的類型,看其是否符合要求,如:網(wǎng)站只允許用戶上傳JPG格式的商品圖片,那么只要PHP獲取上傳圖片的后綴就可對其類型進(jìn)行判斷。接下來本節(jié)將使用自定義函數(shù)和字符串函數(shù)來實(shí)現(xiàn)獲取文件后綴的功能。2.7【案例7】PHP獲取文件后綴設(shè)計思路:(1)自定義一個用于獲取文件后綴的函數(shù)。(2)為該函數(shù)設(shè)置一個參數(shù),用于傳遞文件的名稱。(3)使用字符串函數(shù)獲取文件名稱中“.”的位置,從而根據(jù)此位置向后截取該文件的后綴。案例分析2.7【案例7】PHP獲取文件后綴案例展示【案例7】PHP獲取文件后綴2.7【案例7】PHP獲取文件后綴實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:[點(diǎn)擊查看案例7]2.7【案例7】PHP獲取文件后綴知識點(diǎn)講解1、自定義函數(shù)2、字符串函數(shù)3、數(shù)學(xué)函數(shù)2.7【案例7】PHP獲取文件后綴1、自定義函數(shù)在程序開發(fā)中,通常將某段實(shí)現(xiàn)特定功能的代碼定義成一個函數(shù)。而開發(fā)人員根據(jù)實(shí)際功能需求定義的函數(shù)稱為自定義函數(shù)。2.7【案例7】PHP獲取文件后綴1、自定義函數(shù)(1)函數(shù)的定義語法:function是聲明函數(shù)時必須使用的關(guān)鍵字。函數(shù)名的命名規(guī)則與標(biāo)識符相同,且函數(shù)名是唯一的。參數(shù)是外界傳遞給函數(shù)的值,它是可選的,當(dāng)有多個參數(shù)時,各參數(shù)間使用英文下的逗號“,”分割。函數(shù)體是專門用于實(shí)現(xiàn)特定功能的代碼。function函數(shù)名([參數(shù)1,參數(shù)2,……]){ 函數(shù)體}2.7【案例7】PHP獲取文件后綴1、自定義函數(shù)(2)函數(shù)的調(diào)用函數(shù)在定義完成后,必須通過調(diào)用才能使函數(shù)在程序中發(fā)揮作用。函數(shù)的調(diào)用非常簡單,只需引用函數(shù)名,并傳入相應(yīng)的參數(shù)即可。語法:“[參數(shù)1,參數(shù)2,……]”是可選的,用于表示參數(shù)列表,其值可以是一個或多個。函數(shù)名([參數(shù)1,參數(shù)2,……])2.7【案例7】PHP獲取文件后綴1、自定義函數(shù)(3)函數(shù)的返回值在調(diào)用函數(shù)后,若想要得到一個處理結(jié)果,即函數(shù)的返回值,則需要使用return關(guān)鍵字將函數(shù)的返回值傳遞給調(diào)用者。示例://定義sum()函數(shù),用于求兩個數(shù)的和functionsum($a,$b){$result=$a+$b;return$result;//返回處理結(jié)果}echosum(23,45);//輸出調(diào)用函數(shù)后的結(jié)果2.7【案例7】PHP獲取文件后綴知識點(diǎn)講解1、自定義函數(shù)2、字符串函數(shù)3、數(shù)學(xué)函數(shù)2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)字符串函數(shù)是PHP的內(nèi)置函數(shù),用于操作字符串,在實(shí)際開發(fā)中有著非常重要的作用。2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(1)strlen()函數(shù)strlen()函數(shù)用于獲取字符串的長度。示例:strlen()函數(shù)的返回值類型是int整型。一個英文字符一個空格的長度均為1。一個中文字符的長度為3。echostrlen('abc'); //輸出結(jié)果:3echostrlen('傳智播客'); //輸出結(jié)果:12echostrlen('PHP'); //輸出結(jié)果:52.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(2)strrpos()函數(shù)strrpos()函數(shù)用于獲取指定字符串在目標(biāo)字符串中最后一次出現(xiàn)的位置,其中,目標(biāo)字符串中第1個字符的位置從0開始。示例:strrpos()函數(shù)的返回值類型是int整型,但當(dāng)找不到指定字符串時,返回值為布爾型false。第一個參數(shù)是目標(biāo)字符串。第二個參數(shù)是指定字符串。echostrrpos('itcast','a');//輸出結(jié)果:3echostrrpos('itcast','c',1);//輸出結(jié)果:2echostrrpos('itcast','t',-4);//輸出結(jié)果:12.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(2)strrpos()函數(shù)第三個參數(shù)是字符串開始查找的位置,它有三種情況,具體如下:省略第三個參數(shù)時,表示從目標(biāo)字符串的第0個位置開始向后查找指定字符串。第三個參數(shù)為正數(shù)n時,表示從目標(biāo)字符串的第n個位置開始向后查找指定字符串。第三個參數(shù)為負(fù)數(shù)m時,表示從目標(biāo)字符串的尾部第m個位置開始向前查找指定字符串。2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(3)substr()函數(shù)substr()函數(shù)用于獲取字符串中的子串。示例:substr()函數(shù)的返回值類型是字符串型。substr()函數(shù)的第一個參數(shù)表示待處理的字符串。substr()函數(shù)的第二個參數(shù)表示字符串開始截取的位置,當(dāng)它為負(fù)數(shù)m時,表示從待處理字符的結(jié)尾處向前數(shù)第m個字符開始。echosubstr('itcast',2); //輸出結(jié)果:castechosubstr('itcast',0,2); //輸出結(jié)果:itechosubstr('itcast',3,-1); //輸出結(jié)果:asechosubstr('itcast',-4,-1); //輸出結(jié)果:cas2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(3)substr()函數(shù)substr()函數(shù)的第三個參數(shù)表示截取字符串的長度,當(dāng)其省略時,表示截取到字符串的結(jié)尾,當(dāng)其為負(fù)數(shù)m時,表示從截取后的字符串的末尾處去掉m個字符。2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(4)str_replace()函數(shù)str_replace()函數(shù)用于字符串中的某些字符進(jìn)行替換操作。示例:str_replace()函數(shù)的第一個參數(shù)表示目標(biāo)字符串。str_replace()函數(shù)的第二參數(shù)表示替換字符串。str_replace()函數(shù)的第三個參數(shù)表示執(zhí)行替換的字符串。str_replace()函數(shù)的第四個參數(shù)是一個可選的參數(shù),用于保存字符串被替換的次數(shù)。echostr_replace('e','E','welcome',$count); //輸出結(jié)果:wElcomEecho$count; //輸出結(jié)果:22.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(5)explode()函數(shù)explode()函數(shù)可以使用一個字符串分割另一個字符串。示例://①輸出結(jié)果:array(3){[0]=>string(2)"ba"[1]=>string(1)"a"[2]=>string(1)"a"}var_dump(explode('n','banana'));//②輸出結(jié)果:array(2){[0]=>string(2)"ba"[1]=>string(3)"ana"}var_dump(explode('n','banana',2));//③輸出結(jié)果:array(1){[0]=>string(2)"ba"}var_dump(explode('n','banana',-2));//④輸出結(jié)果:array(1){[0]=>string(6)"banana"}var_dump(explode('n','banana',0));//⑤輸出結(jié)果:array(1){[0]=>string(6)"itcast"}var_dump(explode('p','itcast'));//⑥輸出結(jié)果:bool(false)var_dump(explode('','itcast'));2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(5)explode()函數(shù)explode()函數(shù)的返回值類型是數(shù)組類型。所謂數(shù)組類型就是可以存儲一系列數(shù)據(jù)的變量類型。第一個參數(shù)表示分隔符。第二個參數(shù)表示要分割的字符串。第三個參數(shù)是可選的,表示返回的數(shù)組中最多包含的元素個數(shù),當(dāng)其為負(fù)數(shù)m時,表示返回除了最后的m個元素外的所有元素,當(dāng)其為0時,則把它當(dāng)做1處理。2.7【案例7】PHP獲取文件后綴2、字符串函數(shù)(6)implode()函數(shù)implode()函數(shù)用于指定的連接符將數(shù)組拼接成一個字符串。示例:implode()函數(shù)的第一個參數(shù)表示連接符。implode()函數(shù)的第二個參數(shù)表示待處理的數(shù)組。$arr=array(1,2,3); //定義一個數(shù)組echoimplode(',',$arr); //輸出結(jié)果:1,2,32.7【案例7】PHP獲取文件后綴知識點(diǎn)講解1、自定義函數(shù)2、字符串函數(shù)3、數(shù)學(xué)函數(shù)2.7【案例7】PHP獲取文件后綴3、數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)也是PHP提供的內(nèi)置函數(shù),大大方便了開發(fā)人員處理程序中的數(shù)學(xué)運(yùn)算。2.7【案例7】PHP獲取文件后綴3、數(shù)學(xué)函數(shù)PHP中常用的數(shù)學(xué)函數(shù)函數(shù)名功能描述min()返回最小值pi()返回圓周率的值pow()返回x的y次方sqrt()平方根round()對浮點(diǎn)數(shù)進(jìn)行四舍五入rand()返回隨機(jī)整數(shù)函數(shù)名功能描述abs()絕對值ceil()向上取最接近的整數(shù)floor()向下取最接近的整數(shù)fmod()返回除法的浮點(diǎn)數(shù)余數(shù)is_nan()判斷是否為合法數(shù)值max()返回最大值2.7【案例7】PHP獲取文件后綴3、數(shù)學(xué)函數(shù)示例:ceil()函數(shù)是對浮點(diǎn)數(shù)5.2進(jìn)行向上取整。floor()函數(shù)是對浮點(diǎn)數(shù)進(jìn)行向下取整。rand()函數(shù)的參數(shù)表示隨機(jī)數(shù)的范圍,第一個參數(shù)表示最小值,第二參數(shù)表示最大值。echoceil(5.2); //輸出結(jié)果:6echofloor(7.8); //輸出結(jié)果:7echorand(1,20); //隨機(jī)輸出1到20間的整數(shù)2.8【案例8】訂貨單顯示案例分析需求分析:在程序中,若要統(tǒng)計用戶的訂貨單,例如:賣家賣了產(chǎn)自是廣東的3個主板、產(chǎn)自上海的2個顯卡、產(chǎn)自北京的5個硬盤,它們的單價分別為379、799元、589元。利用前面所學(xué)的知識,就需要定義12個變量去存儲這些數(shù)據(jù),顯然這樣做很麻煩,而且容易出錯。這時,可以使用PHP提供的數(shù)組進(jìn)行處理,從而體驗(yàn)在編程中使用數(shù)組的好處。2.8【案例8】訂貨單顯示設(shè)計思路:(1)定義數(shù)組,存儲商品信息。(2)使用foreach遍歷數(shù)組,并將其顯示在表格中。(3)分別計算主板、顯卡、硬盤的總價。(4)小計訂貨單中所有商品的總價。案例分析2.8【案例8】訂貨單顯示案例展示【案例8】訂貨單顯示2.8【案例8】訂貨單顯示實(shí)現(xiàn)步驟具體實(shí)現(xiàn)步驟如下:[點(diǎn)擊查看案例8]2.8【案例8】訂貨單顯示知識點(diǎn)講解1、初識數(shù)組2、數(shù)組的使用3、數(shù)組遍歷2.8【案例8】訂貨單顯示1、初識數(shù)組(1)什么是數(shù)組在PHP中,數(shù)組是一個可以存儲一組或一系列數(shù)據(jù)的變量,而數(shù)組中的數(shù)據(jù)稱之為數(shù)組元素。2.8【案例8】訂貨單顯示1、初識數(shù)組(2)數(shù)組的組成由于數(shù)組是有數(shù)組元素組成的,而數(shù)組中的元素又分為兩部分,分別為鍵和值。“鍵”是數(shù)組元素的識別名稱,也被稱為數(shù)組下標(biāo)?!爸怠睘閿?shù)組元素的內(nèi)容?!版I”和值之間使用“=>”連接。數(shù)組各個元素之間使用逗號“,”分割。最后一個元素后面的逗號可以省略。2.8【案例8】訂貨單顯示1、初識數(shù)組(2)數(shù)組的分類PHP中的數(shù)組根據(jù)下標(biāo)的數(shù)據(jù)類型,可分為索引數(shù)組和關(guān)聯(lián)數(shù)組。索引數(shù)組是指下標(biāo)為整型的數(shù)組,默認(rèn)下標(biāo)從0開始,也可自己指定。關(guān)聯(lián)數(shù)組是指下標(biāo)為字符串的數(shù)組。2.8【案例8】訂貨單顯示知識點(diǎn)講解1、初識數(shù)組2、數(shù)組的使用3、數(shù)組遍歷2.8【案例8】訂貨單顯示2、數(shù)組的使用(1)數(shù)組的定義在使用數(shù)組前,首先需要定義數(shù)組,PHP中通常使用如下兩種方式定義數(shù)組,分別為:使用賦值方式定義數(shù)組和使用array()函數(shù)定義數(shù)組。2.8【案例8】訂貨單顯示2、數(shù)組的使用(1)數(shù)組的定義賦值方式定義數(shù)組就是創(chuàng)建一個數(shù)組變量,然后使用賦值運(yùn)算符直接給變量賦值。示例:當(dāng)不指定數(shù)組的“鍵”時,默認(rèn)“鍵”從“0”開始,依次遞增。當(dāng)其前面有用戶自己指定索引時,PHP會自動的將前面最大的整數(shù)下標(biāo)加1,作為該元素的下標(biāo)。$arr[]='PHP'; //存儲結(jié)果:$arr[0]='PHP'$arr[]='Java'; //存儲結(jié)果:$arr[1]='Java'$arr[3]='C語言'; //存儲結(jié)果:$arr[3]='C語言'$arr[5]='C++'; //存儲結(jié)果:$arr[5]='C++'$arr['sub']='IOS'; //存儲結(jié)果:$arr['sub']='IOS'$arr[]='網(wǎng)頁平面'; //存儲結(jié)果:$arr[6]='網(wǎng)頁平面'2.8【案例8】訂貨單顯示2、數(shù)組的使用(1)數(shù)組的定義array()函數(shù)定義數(shù)組就是將數(shù)組的元素作為參數(shù),各元素間使用逗號“,”分割。示例:$info=array('id'=>1,'name'=>'Tom');$fruit=array(1=>'apple',3=>'pear');$num=array(1,4,7,9);$mix=array('tel'=>110,'help',3=>'msg');2.8【案例8】訂貨單顯示2、數(shù)組的使用(1)數(shù)組的定義在定義數(shù)組時,需要注意以下幾點(diǎn):數(shù)組元素的下標(biāo)只有整型和字符串兩種類型,如果有其他類型,則會進(jìn)行類型轉(zhuǎn)換。在PHP中合法的整數(shù)值下標(biāo)會被自動的轉(zhuǎn)換為整型下標(biāo)。若數(shù)組存在相同的下標(biāo)時,后面的元素值會覆蓋前面的元素值。2.8【案例8】訂貨單顯示2、數(shù)組的使用(2)訪問數(shù)組由于數(shù)組中的元素是由鍵和值組成的,而鍵又是數(shù)組元素的唯一標(biāo)識,因此可以使用數(shù)組元素的鍵來獲取該元素的值。示例:$info=array('id'=>1,'name'=>'Tom');echo$info['name']; //輸出結(jié)果:Tom2.8【案例8】訂貨單顯示2、數(shù)組的使用(2)訪問數(shù)組但若想要查看數(shù)組中的所有元素,使用以上方式會很繁瑣,為此,PHP提供了print_r()和var_dump()函數(shù),專門用于輸出數(shù)組中的所有元素。示例:print_r()函數(shù)可以按照一定的格式顯示數(shù)組的鍵和值。var_dump()函數(shù)不僅具有print_r()函數(shù)的功能,還可以獲取數(shù)組中元素的個數(shù)和數(shù)據(jù)類型。$info=array('id'=>1,'name'=>'Tom');print_r($info); //輸出結(jié)果:Array([id]=>1[name]=>Tom)var_dump($info); //輸出結(jié)果:array(2){["id"]=>int(1)["name"]=>string(3)"Tom"}2.8【案例8】訂貨單顯示2、數(shù)組的使用(3)刪除數(shù)組PHP中提供的unset()函數(shù)既可以刪除數(shù)組中的某個元素,又可以刪除整個數(shù)組。示例:當(dāng)將$fruit數(shù)組刪除后,在使用print_r()函數(shù)對其輸出時,從輸出結(jié)果可以看出,該數(shù)組已經(jīng)不存在了。刪除元素后,數(shù)組不會再重建該元素的索引。$fruit=array('apple','pear');unset($fruit[1]);print_r($fruit); //輸出結(jié)果:Array([0]=>apple)unset($fruit);print_r($fruit); //輸出結(jié)果:Notice:Undefinedvariable:fruit...2.8【案例8】訂貨單顯示知識點(diǎn)講解1、初識數(shù)組2、數(shù)組的使用3、數(shù)組遍歷2.8【案例8】訂貨單顯示3、數(shù)組遍歷在操作數(shù)組時,依次訪問數(shù)組中每個元素的操作稱為數(shù)組遍歷。在PHP中,通常使用foreach()語句遍歷數(shù)組。示例:foreach語句后面的()中的第一個參數(shù)是待遍歷的數(shù)組名字foreach語句后面的()中的第二個參數(shù)$key表示數(shù)組元素的鍵。foreach語句后面的()中的第三個參數(shù)$value表示數(shù)組元素的值。$fruit=array('apple','pear');foreach($fruitas$key=>$value){ echo$key.'---'.$value.' ';//輸出結(jié)果:0---apple1---pear}2.8【案例8】訂貨單顯示3、數(shù)組遍歷當(dāng)不需要獲取數(shù)組的鍵時,上述示例也可以寫成如下形式:示例:foreach($fruitas$value){ echo$value.' '; //輸出結(jié)果:applepear}2.9【案例9】雙色球案例分析需求分析:雙色球是中國福利彩票的一種玩法。它分為紅色球號碼區(qū)和藍(lán)色球號碼區(qū),每注投注號碼是由6個紅色球號碼和1個藍(lán)色球號碼組成,紅色球號碼從1~33中選取,藍(lán)色球號碼從1~16中選取。那么如何使用PHP程序?qū)崿F(xiàn)一個機(jī)選號碼投注的功能呢?下面通過PHP中提供的數(shù)組函數(shù)來實(shí)現(xiàn)機(jī)選雙色球號碼的投注,從而掌握PHP中數(shù)組函數(shù)的使用。2.9【案例9】雙色球設(shè)計思路:(1)創(chuàng)建一個1~33的紅色球號碼區(qū)數(shù)組,并隨機(jī)取出6個號碼。(2)從1~16的藍(lán)色球號碼區(qū)中隨機(jī)取出1個號碼。(3)顯示輸出機(jī)選的紅色球號碼和藍(lán)色球號碼。案例分析2.9【案例9】雙色球案例展示【案例9】雙色球2.9【案例9】雙色球?qū)崿F(xiàn)步驟具體實(shí)現(xiàn)步驟如下:[點(diǎn)擊查看案例9]2.9【案例9】雙色球知識點(diǎn)講解1、基本數(shù)組函數(shù)2、數(shù)組排序函數(shù)3、數(shù)組檢索函數(shù)2.9【案例9】雙色球1、基本數(shù)組函數(shù)(1)count()函數(shù)count()函數(shù)用于計算數(shù)組中元素的個數(shù)。示例:count()函數(shù)的第二個參數(shù)默認(rèn)為0時,只計算一維數(shù)組的個數(shù)。count()函數(shù)的第二個參數(shù)設(shè)為1時,表示遞歸地對數(shù)組計數(shù)。$stu=array( array('Tom','male',18), array('Alice','female',15), array('Julia','female',14) );echocount($stu); //輸出結(jié)果:3echocount($stu,1); //輸出結(jié)果:122.9【案例9】雙色球1、基本數(shù)組函數(shù)(2)range()函數(shù)range()函數(shù)用于建立一個包含制定范圍單元的數(shù)組。示例:$arr=range('a','c');print_r($arr); //輸出結(jié)果:Array([0]=>a[1]=>b[2]=>c)2.9【案例9】雙色球1、基本數(shù)組函數(shù)(3)array_merge()函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年雜志期刊項(xiàng)目規(guī)劃申請報告模板
- 2024-2025學(xué)年延安市黃龍縣三年級數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 2024-2025學(xué)年忻州市岢嵐縣數(shù)學(xué)三年級第一學(xué)期期末聯(lián)考試題含解析
- 2024-2025學(xué)年霞浦縣數(shù)學(xué)三年級第一學(xué)期期末調(diào)研試題含解析
- 2025年果蔬設(shè)備項(xiàng)目規(guī)劃申請報告
- 2024年版加工承攬保密條款3篇
- 2022年幼兒園中班安全教案7篇
- 學(xué)習(xí)委員工作總結(jié)(合集15篇)
- 2024年化工設(shè)備上門檢修與安全評估協(xié)議3篇
- 銀行員工辭職報告(13篇)
- 《護(hù)患溝通》課件
- 人教版七年級第四章第三節(jié)人類的居住地-聚落(共52張課件)
- 洗浴用品購銷合同模板
- 電能質(zhì)量-公用電網(wǎng)諧波
- 護(hù)理質(zhì)控組長崗位競聘
- 電火灶-編制說明
- 幼兒園幼小銜接方案模板
- 《公共政策學(xué)(第二版)》 課件 楊宏山 第1-6章 導(dǎo)論、政策系統(tǒng)-政策執(zhí)行
- 2024年商用密碼應(yīng)用安全性評估從業(yè)人員考核試題庫-中(多選題)
- Be going to 句型(教學(xué)設(shè)計)-2023-2024學(xué)年人教PEP版英語五年級下冊
- 2024小學(xué)數(shù)學(xué)新教材培訓(xùn):新教材的主要特色
評論
0/150
提交評論