PHP程序設計基礎(微課版)(第2版)課件 第2章 基本語法_第1頁
PHP程序設計基礎(微課版)(第2版)課件 第2章 基本語法_第2頁
PHP程序設計基礎(微課版)(第2版)課件 第2章 基本語法_第3頁
PHP程序設計基礎(微課版)(第2版)課件 第2章 基本語法_第4頁
PHP程序設計基礎(微課版)(第2版)課件 第2章 基本語法_第5頁
已閱讀5頁,還剩220頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2.1PHP代碼標記和注釋陳學平2024-10-181PHP代碼標記012PHP文本注釋02目錄1PHP代碼標記01標準標記echo"我正在學習PHP";?><?php在瀏覽器中將輸出:PHP代碼標記是以<?php開始,以?>結(jié)束。如:標準標記我正在學習PHP這種風格稱之為標準風格。短標記?>echo"我正在學習PHP";<?在瀏覽器中可以看到:PHP標準標記中也可省去“PHP”三個字母,這就是簡短風格。如:短標記我正在學習PHP短標記非常簡單,但是使用短標記,必須在配置文件php.ini中啟用short_open_tag選項。另外,因為這種標記在許多環(huán)境的默認設置中是不支持的,所以PHP不推薦使用這種標記。其他標記此外,還有Script風格,如:<scriptlanguage="php">echo"我正在學習PHP";</script>以及ASP風格,如:<%echo"我正在學習PHP";%>ASP風格在默認情況下是被禁止的,如果需要運行,需修改asp_tags選項,在PHP.int里進行修改。其他標記一般用標準風格及簡短風格,Script風格及ASP風格基本不用,但是,為了達到最好的兼容性,推薦使用標準風格,而不使用簡短風格。2PHP文本注釋022PHP文本注釋在PHP中,使用“//”來編寫單行注釋,或者使用“/*…*/”來編寫多行注釋,也可用“#”來注釋,但這個不太常用。文本的注釋要寫在代碼的上方或右邊,不要寫在代碼的下方。<?php//echo()函數(shù)輸出一個或多個字符串。/*echo()實際上不是一個函數(shù),無需對其使用括號。不過,如果希望向echo()傳遞一個或多個參數(shù),那么使用括號會發(fā)生解析錯誤。*/echo"我正在學習PHP";?>在瀏覽器中只輸出:我正在學習PHP謝謝2.3PHP輸出函數(shù)陳學平01.02.03.04.05.目錄3PHP輸出函數(shù)3.1echo()函數(shù)3.2print()函數(shù)3.3printf()函數(shù)3.4sprintf()函數(shù)3PHP輸出函數(shù)PHP輸出函數(shù)有echo()函數(shù)與print()函數(shù)以及格式化輸出函數(shù)printf()函數(shù)和sprintf()函數(shù)。3.1echo()函數(shù)echo()函數(shù)輸出一個或多個字符串,可以用圓括號,在實際應用中,一般不用圓括號;echo更象一條語句,無返回值。<?phpecho("今天天氣很好,我們出去玩!")."<br>";echo"今天天氣很好,我們出去玩!";?>瀏覽器中輸出為:今天天氣很好,我們出去玩!今天天氣很好,我們出去玩!3.2print()函數(shù)print()函數(shù)輸出一個或多個字符串,可以用圓括號,在實際應用中,如斷線)時返回flase。例如<?phpprint("今天天氣很好,我們出去玩!")."<br>";print"今天天氣很好,我們出去玩!"."<br>";echoprint"今天天氣很好,我們出去玩!";?>瀏覽器中輸出為:一般不用圓括號;print()函數(shù)有返回值,其返回值為1,當其執(zhí)行失?。ū?.2print()函數(shù)今天天氣很好,我們出去玩!今天天氣很好,我們出去玩!今天天氣很好,我們出去玩!1第一句、第二句都輸出了“今天天氣很好,我們出去玩!”,第三除了輸出了“今天天氣很好,我們出去玩!”外,還輸出了返回值“1”。echo()函數(shù)與print()函數(shù)兩者的功能幾乎完全一樣,有一點不同就是echo()函數(shù)無返回值,print()函數(shù)有返回值。且echo()函數(shù)稍快于print()函數(shù)。3.3printf()函數(shù)printf()函數(shù)輸出格式化的字符串。其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一對應,否則將會出現(xiàn)意想不到的錯誤。常用類型轉(zhuǎn)換符%b整數(shù)轉(zhuǎn)二進制%c整數(shù)轉(zhuǎn)ASCII碼%d整數(shù)轉(zhuǎn)有符號十進制%f倍精度轉(zhuǎn)浮點3.3printf()函數(shù)%o整數(shù)轉(zhuǎn)八進制01%u整數(shù)轉(zhuǎn)無符號十進制02%x整數(shù)轉(zhuǎn)十六進制(小寫)03%X整數(shù)轉(zhuǎn)十六進制(大寫)04<?php05$a="今天";06$b=10;07printf("%s我買了%u本書",$a,$b);08?>09%s整數(shù)轉(zhuǎn)字符串103.3printf()函數(shù)瀏覽器輸出的內(nèi)容是:1printf()函數(shù)有返回值,其返回值為字符串的長度。2<?php3$a="今天";4$b=10;5echoprintf("%s我買了%u本書",$a,$b);6?>7此時瀏覽器輸出的內(nèi)容是:8今天我買了10本書169今天我買了10本書103.3printf()函數(shù)其中“今天我買了10本書”為printf()函數(shù)格式化后的字符串,“16”為printf()函數(shù)的返回值——字符串的長度16,需要通過echo才能輸出。3.4sprintf()函數(shù)sprintf()函數(shù)與printf()函數(shù)類似,printf()函數(shù)的返回值是字符串的長度,而sprintf()函數(shù)的返回值則是字符串的本身。因此,sprintf()函數(shù)必須通過echo才能輸出。<?php$a="今天";$b=10;echosprintf("%s我買了%u本書",$a,$b);?>在瀏覽器中可以看到輸出為:今天我買了10本書3.4sprintf()函數(shù)如果省略掉了echo,那么瀏覽器中輸出為空。sprintf()和printf()的用法和C語言中的printf()非常相似??梢杂胹printf()將十進制轉(zhuǎn)換為其它進制。如:<?php$a=12;echosprintf("%b",$a);?>在瀏覽器中輸出為:1100即將12轉(zhuǎn)為二進制為1100。謝謝2.4PHP變量陳學平014PHP變量4PHP變量變量用于存儲值,比如數(shù)字、文本字符串或數(shù)組。一旦設置了某個變量,就可以在腳本中重復地使用它。PHP的變量必須以$符開始,然后再加上變量名。4.1變量的命名規(guī)則在右側(cè)編輯區(qū)輸入內(nèi)容(1)變量名必須以字母或者下劃線"_"開頭,后面跟上任意數(shù)量的字母、數(shù)字或者下劃線。貳在右側(cè)編輯區(qū)輸入內(nèi)容(3)變量名嚴格區(qū)分大小寫,即$UserName與$username是不同的變量。肆$name;$_password;$book1;(5)在為變量命名時,盡量使用有意義的字符串。如下所示:陸在右側(cè)編輯區(qū)輸入內(nèi)容變量的命名規(guī)則如下:壹在右側(cè)編輯區(qū)輸入內(nèi)容(2)變量名不能以數(shù)字開頭,中間不能有空格及運算符。叁在右側(cè)編輯區(qū)輸入內(nèi)容(4)為避免命名沖突,不允許使用與PHP內(nèi)置的函數(shù)相同的名稱。伍4.2變量的賦值為變量賦值有兩種方式:傳值賦值和引用賦值,這兩種賦值方式在對數(shù)據(jù)的處理上存在很大差別。4.2變量的賦值傳值賦值這種賦值方式使用“=”直接將一個變量(或表達式)的值賦給變量。使用這種賦值方式,等號兩邊的變量值互不影響,任何一個變量值的變化都不會影響到另一個變量。從根本上講,傳值賦值是通過在存儲區(qū)域復制一個變量的副本來實現(xiàn)的。4.2變量的賦值實例1:應用傳值賦值實例代碼如下:<?php$a=33;$b=$a;$b=44;echo"變量a的值為".$a."<br>";echo"變量b的值為".$b;?>在上面的代碼中,執(zhí)行“$a=33”語句時,系統(tǒng)會在內(nèi)存中為變量a開辟一個存儲空間,并將“33”這個數(shù)值存儲到該存儲空間。4.2變量的賦值實例1:應用傳值賦值執(zhí)行“$b=$a”語句時,系統(tǒng)會在內(nèi)存中為變量b開辟一個存儲空間,并將變量a所指向的存儲空間的內(nèi)容復制到變量b所指向的存儲空間。執(zhí)行“$b=44”語句時,系統(tǒng)將變量b所指向的存儲空間保存的值更改為“44”,而變量a所指向的存儲空間保存的值仍然是“33”。在瀏覽器上看到的內(nèi)容為:變量a的值為33變量b的值為444.2變量的賦值引用賦值引用賦值同樣也是使用“=”將一個變量的值賦給另一個變量,但是需要在等號右邊的變量前面加上一個“&”符號。實際上這種賦值方式并不是真正意義上的賦值,而是一個變量引用另一個變量。在使用引用賦值的時候,兩個變量將會指向內(nèi)存中同一存儲空間。因此任何一個變量的變化都會引起另外一個變量的變化。實例2應用引用賦值實例代碼如下:<?php$a=33;$b=&$a;$b=44;echo"變量a的值為".$a."<br>";echo"變量b的值為".$b;?>在上面的代碼中執(zhí)行“$a=33”語句時,對內(nèi)存進行操作的過程與傳值賦值相同,這里就不再介紹了。執(zhí)行“$b=&$a”語句后,變量b將會指向變量a所占有的存儲空間。實例2應用引用賦值執(zhí)行“$b=44”語句后,變量b所指向的存儲空間保存的值變?yōu)椤?4”。此時由于變量a也指向此存儲空間,所以變量a的值也會變?yōu)椤?4”。在瀏覽器上看到的內(nèi)容為:變量a的值為44變量b的值為444.3變量的作用域在使用PHP語言進行開發(fā)的時候,幾乎可以在任何位置聲明變量。但是變量聲明位置及聲明方式的不同決定了變量作用域的不同。所謂的變量作用域,指的是變量在哪些范圍內(nèi)能被使用,在哪些范圍內(nèi)不能被使用。PHP中的變量按照作用域的不同可以分為局部變量和全局變量。4.3變量的作用域局部變量局部變量是聲明在某一函數(shù)體內(nèi)的變量,該變量的作用范圍僅限于其所在的函數(shù)體的內(nèi)部。如果在該函數(shù)體的外部引用這個變量,則系統(tǒng)將會認為引用的是另外一個變量。實例3局部變量的使用實例代碼如下:<?phpfunctionlocal(){$a="“這是內(nèi)部函數(shù)”";//在函數(shù)內(nèi)部聲明一個變量a并賦值echo"函數(shù)內(nèi)部變量a的值為".$a."<br>";}local();//調(diào)用函數(shù)local(),用來打印出變量a的值4.3變量的作用域局部變量$a="“這是外部函數(shù)”";//在函數(shù)外部再次聲明變量a并賦另一個值01?>03函數(shù)內(nèi)部變量a的值為“這是內(nèi)部函數(shù)”05echo"函數(shù)外部變量a的值為".$a;02在瀏覽器中輸出為:04函數(shù)外部變量a的值為“這是外部函數(shù)”064.3變量的作用域全局變量全局變量可以在程序的任何地方被訪問,這種變量的作用范圍是最廣泛的。要將一個變量聲明為全局變量,只需在該變量前面加上“global”關鍵字,不區(qū)分大小寫,也可以是“GLOBAL”。使用全局變量,能夠?qū)崿F(xiàn)在函數(shù)內(nèi)部引用函數(shù)外部的參數(shù),或者在函數(shù)外部引用函數(shù)內(nèi)部的參數(shù)。實例4應用全局變量(在函數(shù)內(nèi)部引用函數(shù)外部的參數(shù))的實例代碼如下:。<?php$a="“這是外部函數(shù)”";//在外部定義一個變量afunctionlocal(){global$a;//將變量a聲明為全局變量4.3變量的作用域全局變量echo"在local函數(shù)內(nèi)部獲得變量a的值為".$a."<br>";}local();//調(diào)用函數(shù)local(),用于輸出local函數(shù)內(nèi)部變量a的值?>在瀏覽器中輸出為:在local函數(shù)內(nèi)部獲得變量a的值為“這是外部函數(shù)”實例5應用全局變量(在函數(shù)外部引用函數(shù)內(nèi)部的參數(shù))的實例代碼如下:<?php4.3變量的作用域全局變量functionlocal(){global$a;//將變量a聲明為全局變量$a="“這是內(nèi)部函數(shù)”";//在內(nèi)部對變量a進行賦值}local();//調(diào)用函數(shù)local(),用于輸出local函數(shù)內(nèi)部變量a的值echo"在local函數(shù)外部獲得變量a的值為".$a;//在函數(shù)local外部輸出變量?>在瀏覽器中輸出為:4.3變量的作用域全局變量在local函數(shù)外部獲得變量a的值為“這是內(nèi)部函數(shù)”應用全局變量雖然能夠更加方便地操作變量,但是有的時候變量作用域的擴大,會給開發(fā)帶來麻煩,可能會引發(fā)一些預料不到的問題。將一個變量聲明為全局變量,還有另外一種方法,就是利用$GLOBALS[]數(shù)組。4.3變量的作用域靜態(tài)變量函數(shù)執(zhí)行時所產(chǎn)生的臨時變量,在函數(shù)結(jié)束時就會自動消失。當然,因為程序需要,函數(shù)在循環(huán)過程中不希望變量在每次執(zhí)行完函數(shù)就消失的話,就要采用靜態(tài)變量,靜態(tài)變量是指用static聲明的變量,這種變量與局部變量的區(qū)別是,當靜態(tài)變量離開了它的作用范圍后,它的值不會自動消亡,而是繼續(xù)存在,當下次再用到它的時候,可以保留最近一次的值。實例6應用靜態(tài)變量實例代碼如下:。<?phpfunctionadd(){4.3變量的作用域靜態(tài)變量static$a=0;01echo$a."<br>";02}03add();04add();05add();06?>07在瀏覽器中輸出為:08109$a++;104.3變量的作用域靜態(tài)變量23這段程序中,主要定義了一個函數(shù)add(),然后分3次調(diào)用add()。如果用局部變量的方式來分工這段代碼,3次的輸出應該都是1。但實際輸出卻是1、2和3。這是因為,變量a在聲明的時候被加上了一個修飾符static,這就標志著a變量在add()函數(shù)內(nèi)部就是一個靜態(tài)變量了,具備記憶自身值的功能,當?shù)谝淮握{(diào)用add時,a由于自加變成了1,這個時候,a就記住自己不再是0,而是1了,當需要再次調(diào)用add時,a再一次自加,由1變成了2,…。由此,就可以看出靜態(tài)變量的特性。4.3變量的作用域可變變量可變變量是一種獨特的變量,它可以動態(tài)的改變一個變量的名稱,方法就是在該變量的前面加一個變量符號“$”。實例7可變變量的使用實例代碼如下:。<?php$a='hello';//普通變量$$a='world';//可變變量,相當于$hello='world';echo$a."<br>";echo$$a."<br>";echo$hello."<br>";4.3變量的作用域可變變量echo"$a{$$a}"."<br>";1echo"$a$hello";//這種寫法更準確并且會輸出同樣的結(jié)果2?>3在瀏覽器中輸出為:44.3變量的作用域預定義變量預定義變量又稱為超級全局變量數(shù)組,是PHP系統(tǒng)中自帶的變量,不需要開發(fā)者重新定義,它可讓程序設計更加的方便快捷。在PHP腳本運行時,PHP會自動將一些數(shù)據(jù)放在超級全局數(shù)組中。PHP預定義變量如表2-1所示。表2-1PHP預定義變量謝謝2.4.4變量的數(shù)據(jù)類型陳學平014.4變量的數(shù)據(jù)類型4.4變量的數(shù)據(jù)類型數(shù)據(jù)類型是具有相同特性的一組數(shù)據(jù)的統(tǒng)稱。PHP早就提供了豐富的數(shù)據(jù)類型,PHP5中又有更多補充。數(shù)據(jù)類型可以分為3類:標量數(shù)據(jù)類型、復合數(shù)據(jù)類型和特殊數(shù)據(jù)類型。(1)標量類型(四種):整型(int,integer)浮點型(float,double,real)布爾型(bool,boolean)字符串(string)(2)復合類型(兩種):數(shù)組(array)對象(object)4.4變量的數(shù)據(jù)類型(3)特殊類型(兩種):資源(resource)空值(NULL)整型(integer)PHP中的整型指的是不包含小數(shù)部分的數(shù)據(jù)。在32位操作系統(tǒng)中,整型數(shù)據(jù)的有效范圍在“-2147483648~+2147483647”之間。整型數(shù)據(jù)可以用十進制(基數(shù)為10)、八進制(基數(shù)為8,以0作為前綴)或十六進制(基數(shù)為16,以0x作為前綴)表示,并且可以包含“+”和“-”。整型(integer)實例8整型數(shù)據(jù)的用法浮點型(float)浮點型數(shù)據(jù)就是通常所說的實數(shù),可分為單精度浮點型數(shù)據(jù)和雙精度浮點型數(shù)據(jù)。浮點數(shù)主要用于簡單整數(shù)無法滿足的形式,比如長度、重量等數(shù)據(jù)的表示。浮點型(float)實例9浮點型數(shù)據(jù)的用法實例代碼如下:。<?php$a=1.2;$b=-0.34;$c=1.8e4;//該浮點數(shù)表示1.8×104echo$a."<br>";echo$b."<br>";echo$c;?>在瀏覽器中輸出為:浮點型(float)實例9浮點型數(shù)據(jù)的用法1.201-0.34021800003布爾型(boolean)是在PHP4中開始出現(xiàn)的,一個布爾型的數(shù)據(jù)只有“true”和“false”兩種取值,分別對應邏輯“真”與邏輯“假”。布爾型變量的用法如下面代碼所示。在使用布爾型數(shù)據(jù)類型時,“true”和“false”兩個取值是不區(qū)分大小寫的。也就是說“TRUE”和“FALSE”同樣是正確的。布爾型(boolean)實例10布爾型數(shù)據(jù)的用法字符串(string)字符串是一個字符的序列。組成字符串的字符是任意的,可以是字母、數(shù)字或者符號。在PHP中沒有對字符串的最大長度進行嚴格的規(guī)定。在PHP中定義字符串有3種方式:使用單引號(')定義、使用雙引號(")定義和使用定界符(<<<)定義。實例11雙引號、單引號、定界符使用實例代碼如下:<?php$var="中國人";echo"我是$var"."<br>";echo'我是$var'.'<br>';echo"今天天氣很好!"."<br>";字符串(string)在瀏覽器中輸出為:我是中國人我是$var今天天氣很好!我們?nèi)D書館。我是一個中國人字符串(string)我是一個中國人php中單引號和雙引號的最大區(qū)別就是,雙引號比單引號多一步解析過程。雙引號會把雙引號中的變量及轉(zhuǎn)義字符解析出來。而單引號則不管它的內(nèi)容是什么都作為字符串輸出。在雙引號中,中文和變量一起使用時,變量最好要用{}括起來,或變量前后的字符串用雙引號,再用“.”與變量相連。實例12{}.在字符串中的使用<?php$str="年輕人";echo"我們都是$str,應該多學習。"."<br>";

echo"我們都是{$str},應該多學習。"."<br>";echo"我們都是".$str.",應該多學習。";?>字符串(string)第一句輸出因為變量沒用{}括起來,或者沒有將字符串分開,再用“.”與變量相連,因此變量及其后面的字符串不能輸出,第二、三句輸出都正常。在一般情況下,盡量使用單引號,因為在理論上,單引號的運行速度要快些,如果遇到有變量及轉(zhuǎn)義字符需要解析時,才用雙引號。下面是一些常用的轉(zhuǎn)義字符:值得注意的是,“\n”,“\r”和“\t”三個轉(zhuǎn)義字符在瀏覽器中不能反應出來,只能在源文件看到。PHP定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;PHP定界符中的任何特殊字符都不需要轉(zhuǎn)義;PHP定界符中的PHP變量會被正常的用其值來替換。使用定界符應注意以下幾點:字符串(string)我們都是(1)在<<<之后的字符Eof是自己定義的,隨便什么都是可以的,但是結(jié)尾處的字符一定要和他一樣,他們是成對出現(xiàn)的;(2)結(jié)尾的Eof;,一定要另起一行,并且除了Eof;這個定界符結(jié)尾標識之外不能有任何其他字符,前后都不能有,包括空格;(3)如果在定界符中間出現(xiàn)有PHP的變量,只需要像在其它字符串中輸出一樣寫就行了,變量$var之所以要用{}括起來是要告訴PHP解析器這是一個PHP變量,其實不用也是可以的,但是有可能會產(chǎn)生歧義。數(shù)組(array)數(shù)組是一系列相關的數(shù)據(jù)以某種特定的方式進行排列而組成的集合。組成這個集合的各個數(shù)據(jù)可以是基本數(shù)據(jù)類型,也可以是復合數(shù)據(jù)類型;可以是相同的數(shù)據(jù)類型,也可以是不同的數(shù)據(jù)類型。數(shù)組里的每一個數(shù)據(jù)元素都有其唯一的編號,稱為索引。索引用于指定數(shù)組中特定的數(shù)據(jù)元素。在有的語言中數(shù)組的索引必須是數(shù)字編號,而在PHP中,索引可以是數(shù)字編號,也可以是字符串。數(shù)組(array)實例13一個簡單的PHP數(shù)組的應用實例實例代碼如下:<?php$network=array(1=>"how",2=>"are",'three'=>"you");echo$network[2];echo$network['three'];?>在瀏覽器中輸出為:areyou對象(object)對象是面向?qū)ο笳Z言中的一個核心概念,對象就是類的一個實例。在了解對象之前先簡單介紹一下什么是“類”。在面向?qū)ο笳Z言中,人們把各個具體事物的共同特征抽取出來,形成一個一般的概念,也就構(gòu)成了一個“類”。在PHP中類的定義方式如下。class類名{類里包含的內(nèi)容;}PHP中,通過“new”關鍵字,來實例化一個類,并得到該類的一個對象。對象(object)實例14類和對象的應用實例實例代碼如下:<?phpclassBook{functiongetBookName($book_name){return$book_name;}}$book1=newBook();//實例化一個Book類的對象book1echo$book1->getBookName("PHP")."<br>";對象(object)實例14類和對象的應用實例$book2=newBook();//實例化一個Book類的對象book21echo$book2->getBookName("JSP");2?>3在瀏覽器中輸出為:4PHP5JSP6資源(resource)資源是PHP提供的一種特殊數(shù)據(jù)類型,該數(shù)據(jù)類型用于表示一個PHP的外部資源,比如一個數(shù)據(jù)庫的訪問操作,或者一個網(wǎng)絡流的處理等。雖然資源也是一種數(shù)據(jù)類型,但是不能直接對它進行操作。PHP提供了一些特定的函數(shù),用于建立和使用資源。比如“mysql_connect()”函數(shù)用于建立一個MySQL數(shù)據(jù)的連接,“fopen()”函數(shù)用于打開一個文件等。資源(resource)實例15應用資源數(shù)據(jù)類型的實例實例代碼如下:<?php$cn=mysql_connect('localhost','root','root');echoget_resource_type($cn)."<br>";$fp=fopen("foo","w");echoget_resource_type($fp);?>在瀏覽器中輸出為:mysqllinkstream空值(NULL)NULL是PHP4開始引入的一個特殊的數(shù)據(jù)類型,這種數(shù)據(jù)類型只有一個值1NULL。在PHP中,如果變量滿足以下幾種情況,那么該變量的值就為NULL。2變量未被賦予任何值。3變量被賦值為NULL。4unset()函數(shù)處理后的變量。5實例16使用NULL數(shù)據(jù)類型的一個實例6實例代碼如下:7<?php8$a;//變量$a未被賦予任何值,$a的值為NULL9空值(NULL)01020304$b=NULL;//變量$b被賦值為NULL$c=1;unset($c);//使用unset()函數(shù)處理后,$c的值為NULL?>謝謝2.4.5變量類型的轉(zhuǎn)換陳學平014.5變量類型的轉(zhuǎn)換4.5變量類型的轉(zhuǎn)換PHP中的類型轉(zhuǎn)換包括兩種方式,即自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。下面分別介紹這兩種類型轉(zhuǎn)換的實現(xiàn)方式及應用過程。自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換是指,在定義變量時不需要指定變量的數(shù)據(jù)類型,PHP會根據(jù)引用變量的具體應用環(huán)境將變量轉(zhuǎn)換為合適的數(shù)據(jù)類型。如果所有運算數(shù)都是數(shù)字,則將選取占用字節(jié)最長的一種運算數(shù)的數(shù)據(jù)類型作為基準數(shù)據(jù)類型;如果運算數(shù)為字符串,則將該字符串轉(zhuǎn)型為數(shù)字然后再進行求值運算。字符串轉(zhuǎn)換為數(shù)字的規(guī)定為如果字符串以數(shù)字開頭,則只取數(shù)字部分而去除數(shù)字后面部分,根據(jù)數(shù)字部分構(gòu)成決定轉(zhuǎn)型為整型數(shù)據(jù)還是浮點型數(shù)據(jù);如果字符串以字母開頭,則直接將字符串轉(zhuǎn)換為0。實例17自動類型轉(zhuǎn)換實例代碼如下:<?php自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換在第1個賦值運算式中,運算數(shù)包含了整型數(shù)字“1”和浮點型數(shù)字“1.23”,首先取浮點型數(shù)據(jù)類型作為基準數(shù)據(jù)類型。賦值后變量a的數(shù)據(jù)類型為浮點型。在第2個賦值運算式中,運算數(shù)包含了整型數(shù)字“2”和字符串型數(shù)據(jù)“3.14”,首先將字符串轉(zhuǎn)換為浮點型數(shù)據(jù)“3.14”,然后進行加法運算。賦值后變量b的數(shù)據(jù)類型為浮點型。在第3個賦值運算式中,運算數(shù)包含了整型數(shù)字“3”和字符串型數(shù)據(jù)“abc”,首先將字符串轉(zhuǎn)換為整型數(shù)字0,然后進行加法運算。賦值后變量c的數(shù)據(jù)類型為整型。強制類型轉(zhuǎn)換PHP強制類型轉(zhuǎn)換與C語言或者Java語言中的類型轉(zhuǎn)換相似,都是通過在變量前面加上一個小括號,并把目標數(shù)據(jù)類型填寫在括號中來實現(xiàn)的。在PHP中強制類型轉(zhuǎn)換的具體實現(xiàn)方式如表2-2所示。表2-2PHP強制類型轉(zhuǎn)換的實現(xiàn)方式強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為整型的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為整型的規(guī)則在瀏覽器中輸出為:123123220103強制類型轉(zhuǎn)換浮點型數(shù)據(jù)向整型數(shù)據(jù)轉(zhuǎn)換的時候,需要注意以下兩種情況。如果幾個浮點型數(shù)據(jù)相乘,應將大于1的數(shù)放在最前面,并將整個式子括起來,不然的話容易出錯。以下實例代碼中,第一及第四個輸出正確,其他三個輸出都出現(xiàn)了錯誤。強制類型轉(zhuǎn)換123實例19浮點型數(shù)據(jù)向整型數(shù)據(jù)轉(zhuǎn)換實例代碼如下:<?phpecho(int)(46.86*0.26*0.74)."<br>";//46.86*0.26*0.74=9.015864echo(int)46.86*0.26*0.74."<br>";//其結(jié)果為46*0.26*0.74=8.8504echo(int)0.26*0.74*46.86."<br>";echo(int)(100*0.1*0.7)."<br>";echo(int)(0.1*0.7*100);強制類型轉(zhuǎn)換123?>在瀏覽器中輸出為:98.8504076如果浮點型數(shù)據(jù)相除時,也應將整型外除式括起來,以免出現(xiàn)錯誤。以下實例代碼中,第一及第三個輸出正確,其他兩個輸出都出現(xiàn)了錯誤。實例20浮點型數(shù)據(jù)除法運算強制類型轉(zhuǎn)換實例代碼如下:<?phpecho(int)(7.8/3.2)."<br>";//7.8/3.2=2.4375echo(int)7.8/3.2."<br>";//其結(jié)果為7/3.2=2.1875echo(int)(3.2/7.8)."<br>";//3.2/7.8=0.410256410256echo(int)3.2/7.8;//其結(jié)果為3/7.8=0.38461538461538?>強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為浮點型的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為浮點型的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為字符串的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為字符串的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)組的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)組的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為對象的規(guī)則強制類型轉(zhuǎn)換其他數(shù)據(jù)類型轉(zhuǎn)換為對象的規(guī)則謝謝2.4.6變量的常用函數(shù)演講人4.6變量的常用函數(shù)01大家好!02目錄014.6變量的常用函數(shù)變量轉(zhuǎn)換函數(shù)PHP強制轉(zhuǎn)換中,除了上述方法外,還可應用函數(shù)進行轉(zhuǎn)換,常用的函數(shù)有以下幾種。變量轉(zhuǎn)換函數(shù)settype()函數(shù)settype()函數(shù)將變量設置為指定類型,當某個變量用settype()函數(shù)設定后,該變量的類型就發(fā)生改變,其語法如下:boolsettype(mixed$var,string$type)將變量var的類型設置成type。type的可能值為:“boolean”(或為“bool”),“integer”(或為“int”),“float”,“string”,“array”,“object”,“null”。如果成功則返回TRUE,失敗則返回FALSE。實例26使用settype()函數(shù)指定變量類型實例代碼如下:變量轉(zhuǎn)換函數(shù)settype()函數(shù)<?php01$a="5.6kg";02$b=true;03settype($a,"float")."<br>";04settype($b,"string")."<br>";05echo$a."<br>";06echo$b;07?>08在瀏覽器中輸出為:0961可以看出,原來為字符串的$a經(jīng)settype設置后,轉(zhuǎn)換為浮點數(shù)“5.6”。原來為布爾值的$b經(jīng)settype設置后,true轉(zhuǎn)換為字符串“1”。(2)intval()函數(shù)、floatval()函數(shù)、strval()函數(shù)這三個函數(shù)是將原變量通過轉(zhuǎn)換后得到新類型的新變量,原變量的類型和值都不變,括號中放入原變量。實例27使用intval()函數(shù)、floatval()函數(shù)、strval()函數(shù)實現(xiàn)數(shù)據(jù)轉(zhuǎn)換實例代碼如下:<?php6$a="5.6kg";01$c=intval($a);02$d=floatval($a);03$e=strval($b);04echo$a."<br>";05echo$b."<br>";06echo$c."<br>";07echo$d."<br>";08echo$e;09$b=2001;106?>在瀏覽器中輸出為:5.6kg200155.62001可以看出,原變量a,b并沒有改變,變量c為整數(shù)5,變量d為浮點數(shù)5.6,變量e為字符串2001,而原變量b為整數(shù)2001。變量檢查函數(shù)isset()函數(shù)isset()函數(shù)用于檢查某個變量是否存在,如果存在則返回TRUE,否則返回FALSE。使用isset()函數(shù)的實例代碼如下。實例28isset()函數(shù)檢查變量是否設置實例代碼如下:<?php$a="2001年";$c=3.14;echoisset($a)."<br>";echoisset($b)."<br>";變量檢查函數(shù)isset()函數(shù)echoisset($c);?>在瀏覽器中輸出為:11因$a,$c真實存在,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b并不存在,它返回布爾值FALSE,在瀏覽器是顯示為空。變量檢查函數(shù)empty()函數(shù)empty()函數(shù)用于檢查某個變量的值是否為空(""、0、"0"、NULL、FALSE、array()、var$var以及沒有任何屬性的對象都將被認為是空),如果為空則返回TRUE,否則返回FALSE。實例29empty()函數(shù)檢查變量值是否為空實例代碼如下:<?php$a="";$b=3.14;$c=0;echoempty($a)."<br>";變量檢查函數(shù)empty()函數(shù)echoempty($b)."<br>";echoempty($c);?>在瀏覽器中輸出為:11因$a,$c為空,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b并不為空,它返回布爾值FALSE,在瀏覽器是顯示為空。變量判斷函數(shù)PHP中有一些函數(shù)可以判斷變量的類型,下面將一些常用的變量判斷函數(shù)總結(jié)如下。1表2-9判斷變量類型的函數(shù)2實例30使用判斷變量類型函數(shù)3實例代碼如下:4<?php5$a="8";6$b=3.14;7$c=9;8$d=array(2,4,6);9判斷變量類型的函數(shù)如表2-9所示。10變量判斷函數(shù)echois_string($a).'<br>';01echois_float($b).'<br>';02echois_string($c).'<br>';03echois_array($d);04?>05在瀏覽器中輸出為:06107108109變量獲取函數(shù)gettype()函數(shù)本函數(shù)用來取得變量的類型。返回的類型字符串可能為下列字符串其中之一:boolean、integer、double、string、array、object、resource、NULL、unknowntype。實例31使用gettype()函數(shù)獲取變量類型實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);變量獲取函數(shù)gettype()函數(shù)echogettype($a).'<br>';echogettype($b).'<br>';echogettype($c).'<br>';?>echogettype($d);在瀏覽器中輸出為:010203040506變量獲取函數(shù)stringdoubleintegerarray一般不要使用gettype()來測試某種類型,因為其返回的字符串在未來的版本中可能需要改變。此外,由于包含了字符串的比較,它的運行也是較慢的。使用is_*函數(shù)代替。變量獲取函數(shù)var_dump()函數(shù)var_dump()函數(shù)打印變量的相關信息,此函數(shù)顯示關于一個或多個表達式的結(jié)構(gòu)信息,包括表達式的類型與值。數(shù)組將遞歸展開值,通過縮進顯示其結(jié)構(gòu)。實例32使用var_dump()函數(shù)打印變量信息。實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);echovar_dump($a).'<br>';變量獲取函數(shù)var_dump()函數(shù)echovar_dump($b).'<br>';echovar_dump($c).'<br>';echovar_dump($d);?>在瀏覽器中輸出為:string(8)"大家好!"float(3.14)int(9)array(3){[0]=>int(2)[1]=>int(4)[2]=>int(6)}變量獲取函數(shù)var_export()函數(shù)var_export()函數(shù)輸出或返回一個變量的字符串表示,此函數(shù)返回關于傳遞給該函數(shù)的變量的結(jié)構(gòu)信息,它和var_dump()類似,不同的是它返回的表示是合法PHP代碼??梢酝ㄟ^將函數(shù)的第二個參數(shù)設置為TRUE,從而返回變量的表示。實例33使用var_export()函數(shù)輸出或返回字符串實例代碼如下:<?php$a="8";$b=3.14;$c=9;$d=array(2,4,6);echovar_export($a).'<br>';變量獲取函數(shù)var_export()函數(shù)echovar_export($b).'<br>';echovar_export($c).'<br>';echovar_export($d);?>在瀏覽器中輸出為:'8'3.149array(0=>2,1=>4,2=>6,)一般在調(diào)試數(shù)組的時候,多用var_export(),因為var_dump()沒有格式,而var_export()是有換行的,看起來比較舒服一些。而在調(diào)試單個變量的時候多用var_dump(),因為var_dump()可以打印出變量類型和長度。變量銷毀函數(shù)unset()函數(shù)php中unset()函數(shù)是用來銷毀變量的,但很多時候,這個函數(shù)只把變量給銷毀了,內(nèi)存中存放的該變量的值仍然沒有銷毀,沒能達到釋放內(nèi)存的效果。如果在函數(shù)中unset()一個通過引用傳遞的變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值。實例34使用unset()函數(shù)銷毀變量實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);變量銷毀函數(shù)unset()函數(shù)$e=true;01unset($d);02echo($a).'<br>';03echo($b).'<br>';04echo($c).'<br>';05echo($d).'<br>';06echo($e);07?>08在瀏覽器中輸出為:09unset($b);1002大家好!大家好!91變量b和d被銷毀,所以沒有被輸出。謝謝2.4.6變量的常用函數(shù)陳學平2024-10-184.6變量的常用函數(shù)01各種函數(shù)示例02目錄4.6變量的常用函數(shù)01變量轉(zhuǎn)換函數(shù)PHP強制轉(zhuǎn)換中,除了上述方法外,還可應用函數(shù)進行轉(zhuǎn)換,常用的函數(shù)有以下幾種。變量轉(zhuǎn)換函數(shù)settype()函數(shù)settype()函數(shù)將變量設置為指定類型,當某個變量用settype()函數(shù)設定后,該變量的類型就發(fā)生改變,其語法如下:boolsettype(mixed$var,string$type)將變量var的類型設置成type。type的可能值為:“boolean”(或為“bool”),“integer”(或為“int”),“float”,“string”,“array”,“object”,“null”。如果成功則返回TRUE,失敗則返回FALSE。實例26使用settype()函數(shù)指定變量類型實例代碼如下:變量轉(zhuǎn)換函數(shù)settype()函數(shù)6可以看出,原來為字符串的$a經(jīng)settype設置后,轉(zhuǎn)換為浮點數(shù)“5.6”。原來為布爾值的$b經(jīng)settype設置后,true轉(zhuǎn)換為字符串“1”。(2)intval()函數(shù)、floatval()函數(shù)、strval()函數(shù)這三個函數(shù)是將原變量通過轉(zhuǎn)換后得到新類型的新變量,原變量的類型和值都不變,括號中放入原變量。實例27使用intval()函數(shù)、floatval()函數(shù)、strval()函數(shù)實現(xiàn)數(shù)據(jù)轉(zhuǎn)換實例代碼如下:66可以看出,原變量a,b并沒有改變,變量c為整數(shù)5,變量d為浮點數(shù)5.6,變量e為字符串2001,而原變量b為整數(shù)2001。變量檢查函數(shù)isset()函數(shù)isset()函數(shù)用于檢查某個變量是否存在,如果存在則返回TRUE,否則返回FALSE。使用isset()函數(shù)的實例代碼如下。實例28isset()函數(shù)檢查變量是否設置實例代碼如下:<?php$a="2001年";$c=3.14;echoisset($a)."<br>";echoisset($b)."<br>";echoisset($c);?>變量檢查函數(shù)isset()函數(shù)在瀏覽器中輸出為:11因$a,$c真實存在,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b并不存在,它返回布爾值FALSE,在瀏覽器是顯示為空。變量檢查函數(shù)empty()函數(shù)empty()函數(shù)用于檢查某個變量的值是否為空(""、0、"0"、NULL、FALSE、array()、var$var以及沒有任何屬性的對象都將被認為是空),如果為空則返回TRUE,否則返回FALSE。實例29empty()函數(shù)檢查變量值是否為空實例代碼如下:<?php$a="";$b=3.14;$c=0;echoempty($a)."<br>";echoempty($b)."<br>";echoempty($c);?>變量檢查函數(shù)empty()函數(shù)在瀏覽器中輸出為:11因$a,$c為空,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b并不為空,它返回布爾值FALSE,在瀏覽器是顯示為空。變量判斷函數(shù)函數(shù)名作用判斷結(jié)果is_int()is_integer()檢測變量是否是整數(shù)若變量為整數(shù)類型則返回

true,否則返回falseis_float()is_double()檢測變量是否是浮點型若變量為浮點型則返回

true,否則返回falseis_bool()檢測變量是否是布爾型若變量為布爾型則返回

true,否則返回falseis_string()檢測變量是否是字符串若變量為字符串則返回

true,否則返回falseis_array()檢測變量是否是數(shù)組若變量為數(shù)組則返回

true,否則返回falseis_object()檢測變量是否是一個對象若變量為對象則返回

true,否則返回falseis_resource()檢測變量是否為資源類型若變量為資源類型則返回

true,否則返回falseis_null()檢測變量是否為

NULL若變量為

NULL則返回true,否則返回false變量判斷函數(shù)變量獲取函數(shù)gettype()函數(shù)本函數(shù)用來取得變量的類型。返回的類型字符串可能為下列字符串其中之一:boolean、integer、double、string、array、object、resource、NULL、unknowntype。實例31使用gettype()函數(shù)獲取變量類型實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);echogettype($a).'<br>';echogettype($b).'<br>';echogettype($c).'<br>';echogettype($d);?>變量獲取函數(shù)gettype()函數(shù)變量獲取函數(shù)一般不要使用gettype()來測試某種類型,因為其返回的字符串在未來的版本中可能需要改變。此外,由于包含了字符串的比較,它的運行也是較慢的。使用is_*函數(shù)代替。變量獲取函數(shù)var_dump()函數(shù)var_dump()函數(shù)打印變量的相關信息,此函數(shù)顯示關于一個或多個表達式的結(jié)構(gòu)信息,包括表達式的類型與值。數(shù)組將遞歸展開值,通過縮進顯示其結(jié)構(gòu)。實例32使用var_dump()函數(shù)打印變量信息。實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);echovar_dump($b).'<br>';echovar_dump($c).'<br>';echovar_dump($d);?>變量獲取函數(shù)var_dump()函數(shù)在瀏覽器中輸出為:string(8)"大家好!"float(3.14)int(9)array(3){[0]=>int(2)[1]=>int(4)[2]=>int(6)}變量獲取函數(shù)var_export()函數(shù)var_export()函數(shù)輸出或返回一個變量的字符串表示,此函數(shù)返回關于傳遞給該函數(shù)的變量的結(jié)構(gòu)信息,它和var_dump()類似,不同的是它返回的表示是合法PHP代碼??梢酝ㄟ^將函數(shù)的第二個參數(shù)設置為TRUE,從而返回變量的表示。實例33使用var_export()函數(shù)輸出或返回字符串實例代碼如下:<?php$a="8";$b=3.14;$c=9;$d=array(2,4,6);echovar_export($a).'<br>';echovar_export($b).'<br>';echovar_export($c).'<br>';echovar_export($d);?>變量獲取函數(shù)var_export()函數(shù)在瀏覽器中輸出為:'8'3.149array(0=>2,1=>4,2=>6,)一般在調(diào)試數(shù)組的時候,多用var_export(),因為var_dump()沒有格式,而var_export()是有換行的,看起來比較舒服一些。而在調(diào)試單個變量的時候多用var_dump(),因為var_dump()可以打印出變量類型和長度。變量銷毀函數(shù)unset()函數(shù)php中unset()函數(shù)是用來銷毀變量的,但很多時候,這個函數(shù)只把變量給銷毀了,內(nèi)存中存放的該變量的值仍然沒有銷毀,沒能達到釋放內(nèi)存的效果。如果在函數(shù)中unset()一個通過引用傳遞的變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值。實例34使用unset()函數(shù)銷毀變量實例代碼如下:<?php$a="大家好!";$b=3.14;$c=9;$d=array(2,4,6);$e=true;unset($b);unset($d);echo($a).'<br>';echo($b).'<br>';echo($c).'<br>';echo($d).'<br>';echo($e);?>謝謝2.5PHP常量陳學平015PHP常量5.1自定義常量PHP中使用define()函數(shù)定義常量。define(常量名,常量值),常量命名方法與變量命名相同,以字母或下劃線開頭,常量名稱區(qū)分大小寫,但按照慣例常量名稱全部大寫,如果設置為true則不區(qū)分大小寫,如果設置為false則區(qū)分大小寫,如果沒有設置該參數(shù),則取默認值false。一個常量一旦被定義,就不能再改變或者取消定義。實例35使用define()函數(shù)定義常量實例代碼如下:<?phpdefine("CONSTANT","你好!");echoCONSTANT."<br>";5.1自定義常量define("CONSTANT","你在干什么?");echoCONSTANT."<br>";echoConstant;?>在瀏覽器中輸出為:你好!你好!Constant5.1自定義常量在PHP中定義了一個常量名“CONSTANT”,并給予值“你好!”,因此在瀏覽器中輸出了“你好!”,如果又給常量“CONSTANT”另一值“你在干什么?”,因常量定義后其值不能被改變,因此瀏覽器中第二個輸出仍為“你好!”,而不是“你在干什么?”。將“echoCONSTANT”改成“echoConstant”,因常量區(qū)分大小寫,“Constant”并不是常量“CONSTANT”,因此“Constant”被當作內(nèi)容輸出來,即第三個輸出為“Constant”。5.2預定義常量與預定義變量一樣,PHP也提供了一些默認的預定義常量供使用。在程序中可以隨時應用這些預定義常量,但是不能任意更改這些常量的值。PHP中常用的一些默認預定義常量及其作用如表2-10所示。表2-10預定義常量及其作用謝謝2.6運算符陳學平016運算符6運算符一個復雜的PHP程序往往是由大量的表達式所構(gòu)成的,而運算符則是表達式的核心,也稱作操作符。只有掌握了PHP表達式和運算符的用法,才能夠更好地使用PHP語言進行開發(fā)設計。PHP中常用的運算符包括算術運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、字符串運算符和數(shù)組運算符,下面將分別介紹。6.1算術運算符算術運算符號,就是用來處理四則運算的符號,這是最簡單,也最常用的符號,尤其是數(shù)字的處理,幾乎都會使用到算術運算符,其中取模就是取余數(shù)的意思。PHP提供的算術運算符及其作用如表2-11所示。表2-11算術運算符實例36使用算術運算符實例代碼如下:<?php$a=8;$b=3;echo$a+$b."<br>";echo$a-$b."<br>";echo$a*$b."<br>";echo$a/$b."<br>";echo$a%$b;?>在瀏覽器中輸出為:115242.6666666666726.2遞增/遞減運算符遞增/遞減運算符是可以對操作系統(tǒng)(可以是數(shù)字或字符)進行遞增、遞減操作的一種運算符。PHP提供的遞增/遞減運算符及其作用如表2-12所示。表2-12遞增/遞減運算符及其作用實例37使用遞增/遞減運算符實例代碼如下:<?php$a=8;$b=8;$c=3;$d=3;echo$a++."<br>";echo++$b."<br>";echo$c--."<br>";echo--$d;?>6.3賦值運算符基本的賦值運算符是“=”。它并不是常規(guī)的“等于”號。它實際上意味著把右邊表達式的值賦給左邊的變量。如$a=3,并不是$a等于3,而是將整數(shù)賦給$a。然而在PHP中不僅僅只有這一種賦值運算符,PHP提供的賦值運算符及其用法如表2-13所示。表2-13賦值運算符實例38使用賦值運算符實例代碼如下:<?php$a=6;$b=8;$c=7;$d=5;$e=4;6.3賦值運算符$f="大家";echo($a+=3)."<br>";echo($b-=3)."<br>";echo($c*=3)."<br>";echo($d/=3)."<br>";echo($e%=3)."<br>";echo($f.="好!");?>6.4比較運算符比較運算符也稱條件運算符或關系運算符,用于比較兩個數(shù)據(jù)的值并返回一個布爾類型的結(jié)果。PHP提供的比較運算符及其用法如表2-14所示。表2-14比較運算符實例39使用比較運算符實例代碼如下:<?php$a=5;$b=3;$c="5";$d=5.0;6.4比較運算符echovar_dump($a==$b)."<br>";echovar_dump($c==$d)."<br>";echovar_dump($a===$c)."<br>";echovar_dump($a!=$b)."<br>";echovar_dump($a!=$c)."<br>";echovar_dump($a!==$d)."<br>";echovar_dump($a<$b)."<br>";echovar_dump($a>$b)."<br>";echovar_dump($a<=$b)."<br>";echovar_dump($a>=$b);?>6.5邏輯運算符邏輯運算符用于處理邏輯運算操作,只能操作布爾型值。PHP提供的邏輯運算符及其用法如表2-15所示。表2-15邏輯運算符實例40使用邏輯運算符實例代碼如下:<?php$a=true;$b=true;$c=false;echovar_dump($a&&$b)."<br>";6.5邏輯運算符echovar_dump($a&&$b)."<br>";echovar_dump($a&&$c)."<br>";echovar_dump($a||$b)."<br>";echovar_dump($a||$c)."<br>";echovar_dump($axor$b)."<br>";echovar_dump($axor$c)."<br>";echovar_dump(!$a)."<br>";echovar_dump(!$c);?>6.6位運算符位運算符主要應用于整型數(shù)據(jù)的運算過程。當表達式包含位運算符時,運算時會先將各個整型運算數(shù)轉(zhuǎn)換為相應的二進制格式,然后再進行位運算。PHP提供的位運算符及其用法如表2-16所示。表2-16位運算符號實例41使用位運算符實例代碼如下:<?php$a=7;//二進制為00000111$b=2;//二進制為000000106.6位運算符echo($a&$b)."<br>";//與操作后為00000010,轉(zhuǎn)十進制為2echo($a|$b)."<br>";//或操作后為00000111,轉(zhuǎn)十進制為7echo($a^$b)."<br>";//異或操作后為00000101,轉(zhuǎn)十進制為5

echo(~$a)."<br>";//非操作后為11111000,轉(zhuǎn)十進制為-8echo($a<<$b)."<br>";//向左位移2個單位后為00011100,轉(zhuǎn)十進制為28echo($a>>$b)."<br>";//向右位移2個單位后為00000001,轉(zhuǎn)十進制為1?>6.6位運算符其他都好理解,對于非操作后為11111000,轉(zhuǎn)十進制為什么-8,做一下解釋。計算機中一般32位字長,為了方便,如果按8位說明(8的十進制為1000,其32位00000000000000000000000000001000,其8位為00001000)。當指定一個數(shù)是無符號類型時,那么其最高位的1或0,和其它位一樣,用來表示該數(shù)的大小。當指定一個數(shù)是有符號類型時,最高數(shù)稱為“符號位”。為1時,表示該數(shù)為負值,為0時表示為正值。負數(shù)如何轉(zhuǎn)換成二進制?負數(shù)轉(zhuǎn)為二進制的步驟為:第一步,求出其正數(shù)的二進制,如-8的正數(shù)(8)的二進制為00001000。第二步,求出其反碼,即1變0,0變1,00001000的反碼是11110111。6.6位運算符第三步,得出其補碼,即反碼加1,要記住逢2進1,11110111的補碼為11111000,因此-8的二進制為11111000。雖然是8位,而實際上是32位,前24位全都是1,上面講的8的二進制00001000前24位都是0。為什么11111000是-8而不是248?將248轉(zhuǎn)為二進制是11111000,但其前24位都為0,而-8的二進制前24位都為1。如果單從8位來講,248的二進制是無符號類型,它沒有負數(shù),取值范圍為0~255(00000000~11111111)共個數(shù),而-8的二進制是有符號類型,取值范圍為-128~127(負數(shù)10000000~11111111,00000000,正數(shù)00000001~01111111)共256個數(shù)。6.6位運算符32位操作系統(tǒng)中使用位運算符編程的時候,右移不要超過32位,左移結(jié)果不要超過32位,否則會發(fā)生數(shù)據(jù)溢出。01如果在開發(fā)過程中一定要使用位運算符,則建議開發(fā)人員保證所有參與位運算的數(shù)據(jù)都為整型數(shù)據(jù),否則運算結(jié)果可能產(chǎn)生錯誤。02位運算符也可用于包含字符串的表達式,但是這種情況很少見。036.7字符串運算符字符串運算符也稱連接運算符,用于處理字符串的相關操作。在PHP中提供了兩個字符串運算符。第一個是連接運算符(“.”),它返回其左右參數(shù)連接后的字符串。第二個是連接賦值運算符(“.=”),它將右邊參數(shù)附加到左邊的參數(shù)后。實例42使用字符串運算符實例代碼如下:<?php$a="今天";$b=$a."是星期一,";echo$b."<br>";$c="明天";$c.="是星期二。";echo($c);?>6.8數(shù)組運算符6.8數(shù)組運算符<?php$a=array("1"=>3,"2"=>5);$b=array("color"=>"red","shape"=>"round");$c=array("1"=>"3","2"=>"5");echovar_dump($a+$b)."<br>";echovar_dump($a==$c)."<br>";echovar_dump($a===$c)."<br>";echovar_dump($a!=$b)."<br>";echovar_dump($a!==$c);?>6.9錯誤抑制運算符PHP表達式產(chǎn)生錯誤而如果不想將錯誤信息顯示在頁面上時,可使用錯誤抑制運算符。當表達式的前面被加上“@”這個運算符以后,該表達式可能產(chǎn)生的任何錯誤信息都會被忽略。實例44使用錯誤抑制運算符實例代碼如下:<?php$a=5;$b=0;echo($a/$b);?>6.9錯誤抑制運算符在瀏覽器中輸出為:Warning:DivisionbyzeroinC:\phpStudy\WWW\2\44.PHPonline4上面的C:\phpStudy\WWW\是網(wǎng)站的目錄路徑。瀏覽器出現(xiàn)了錯誤提示,如果將在($a/$b)前面加上“@”這個符號,則再次運行這個程序的時候,就不會得到任何錯誤信息。<?php$a=5;$b=0;echo@($a/$b);6.9錯誤抑制運算符?>在程序的開發(fā)調(diào)試階段,不應該使用錯誤抑制運算符,以便能夠快速地發(fā)現(xiàn)錯誤信息。而在程序的發(fā)布階段,可加上錯誤抑制運算符,以防止程序出現(xiàn)不友好的錯誤信息。6.10類型運算符實例45應用類型運算符實例代碼如下:<?phpclassA{} //定義一個類A$a=newA(); //實例化一個類A的對象avar_dump($ainstanceofA); //使用類型運算符判斷a是否為類A的實例?>6.11執(zhí)行運算符執(zhí)行運算符使用“`”(鍵盤數(shù)字1左邊的按鍵)符號。使用了這個運算符以后,該運算符內(nèi)的字符串將會被當做DOS命令行來處理。實例46應用執(zhí)行運算符實例代碼如下:<?php$a=`dirc:\\AppServ`;echo$a;?>在瀏覽器中輸出為:驅(qū)動器C中的卷是BOOTCAMP卷的序列號是3424-B308c:\的目錄6.12三元運算符三元運算符的功能與“ifelse”流程語句一致,它在一行中書寫,代碼精練、執(zhí)行效率高。在PHP程序中恰當?shù)厥褂萌\算符能夠讓腳本更為簡潔、高效。代碼的格式如下:表達式1?表達式2:表達式3如果表達式1的值為true則計算表達式2,否則計算表達式3。實例47應用判斷運算符實例代碼如下:<?php$a=90;$b=$a>80?'成功':'失敗';echo$b;?>6.12三元運算符在瀏覽器中輸出為:成功應該注意的是:在使用三元運算符時,建議使用print語句替換echo語句,經(jīng)測試,PHP4環(huán)境下,在使用三元運算時若用echo語句打印內(nèi)容,PHP會報錯。6.13運算符的優(yōu)先級一個復雜的表達式往往包含了多種運算符,各個運算符優(yōu)先級的不同決定了其被執(zhí)行的順序也不一樣。高優(yōu)先級的運算符所在的子表達式會先被執(zhí)行,而低優(yōu)先級的運算符所在的子表達式會后被執(zhí)行。下面2-18表格從高到低列出了PHP運算符的優(yōu)先級。同一行中的運算符具有相同的優(yōu)先級,此時它們的結(jié)合方向決定求值順序。左聯(lián)表示表達式從左向右求值,右聯(lián)相反。表2-18運算符優(yōu)先級如果在開發(fā)過程中需要使用復雜的表達式運算,則可以通過添加“()”來限制各子表達式運算的優(yōu)先級。謝謝2.7表達式陳學平017表達式7表達式表達式是常量、變量和運算符的組合。表達式是PHP最重要的基石。在PHP中,幾乎所寫的任何東西都是一個表達式。簡單但卻最精確的定義一個表達式的方式就是“任何有值的東西”。7.1簡單表達式簡單表達式是由一個單一的賦值符或一個單一函數(shù)調(diào)用組成的。由于這些表達式很簡單,所以也沒必要過多討論。實例48簡單表達式應用實例代碼如下:<?phpif($a<$b){echo"a<b";}else{echo"a>b";}?>7.1簡單表達式輸出結(jié)果a>b上面的例子使用了if判斷語句,判斷條件就是括號里面“$a<$b”表達式,如果$a<$b成立的話,就會輸出“a<b”,否則就會輸出“a>b”。這只是一個簡單的表達式,在實際開發(fā)中,會復雜很多。7.2復雜表達式復雜表達式可以以任何順序使用任意數(shù)量的數(shù)值、變量、操作符和函數(shù)。盡可能使用簡短的表達式,這意味著它們更容易維護。實例49復雜表達式實例代碼如下:<?php((10+2)/count_fishes()*114)?>說明:包含有三個操作符和一個函數(shù)調(diào)用的復雜表達式。<?phpinitialize_count(20-($int_page_number-1)*2)?>7.2復雜表達式說明:這是有一個復雜表達式參數(shù)的簡單函數(shù)調(diào)用。有時很難分清左括號和右括號的數(shù)目是否相同。從左到右,當左括號出現(xiàn)時,就加1,當右括號出現(xiàn)時,就從總數(shù)中減1。如果在表達式的結(jié)尾,總數(shù)為零時,左圓括號和右圓括號的數(shù)目就一定相同了。謝謝2.8PHP流程控制語句陳學平8PHP流程控制語句01PHP條件語句02目錄018PHP流程控制語句8PHP流程控制語句01不論是PHP還是別的語法,程序總是由若干條語句組成。在右側(cè)編輯區(qū)輸入內(nèi)容03(1)順序結(jié)構(gòu):從第一條語句到最后一條語句完全順序執(zhí)行;在右側(cè)編輯區(qū)輸入內(nèi)容05(3)循環(huán)結(jié)構(gòu):根據(jù)某條條件重復地執(zhí)行某項任務若干次,或直到達成目標即可。PHP中有三種控制語句用以實現(xiàn)選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu):07(2)循環(huán)控制語句:foreach、while、dowhile和for;在右側(cè)編輯區(qū)輸入內(nèi)容04(2)選擇結(jié)構(gòu):根據(jù)用戶輸入或語句的中間結(jié)果去執(zhí)行若干任務;在右側(cè)編輯區(qū)輸入內(nèi)容06(1)條件控制語句:if、else、elseif和switch;在右側(cè)編輯區(qū)輸入內(nèi)容08(3)轉(zhuǎn)移控制語句:break、continue和return。在右側(cè)編輯區(qū)輸入內(nèi)容02從執(zhí)行方式上看,語句的控制結(jié)構(gòu)分為以下三種:在右側(cè)編輯區(qū)輸入內(nèi)容8.1條件控制語句If語句和用法

1.If語句和用法

If(A)

Statement1;

Else

Statement2;解析:如果A為true,則執(zhí)行statement1;否則執(zhí)行statement2。8.1條件控制語句If語句和用法實例代碼如下:<?php$fenshu=59;//根據(jù)$fenshu的值,判斷是否及格。如果>=60則輸出及格if($fenshu>=60)echo"及格";elseecho"不及格";?>輸出結(jié)果8.1條件控制語句2.If···elseif···else語句和用法If(A)Statement1;Elseif(B)Statement2

溫馨提示

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

評論

0/150

提交評論