




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章基本語法第一節(jié)PHP代碼書寫PHP代碼我們以?php開始,以?結束。如: ?phpecho我正在學習PHP”;在瀏覽器中將輸岀:我正在學習PHP這種風格我們稱之為標準風格,我們也可省去“PHP”三個字母,即我們常常說 的簡短風格。如:同樣我們在瀏覽器中可以看到:我正在學習PHP此外,還有Script風格,如:echo*我正在學習PHP;以及ASP風格,如:ASP風格在默認情況下是被禁止的,如果需要運行,需修改aspjags選項,在PHP.int 里。我們一般用標準風格及簡短風格,Script風格及ASP風格基本不用,但是,為 了達到最好的兼容性,我們推薦使用標準風格,而不使用簡短風格。第
2、二節(jié)PHP文本注釋在PHP中,我們使用u/n來編寫單行注釋,或者使用“廣*/ ”來編寫多 行注釋,也可用“當來注釋,但這個不太常用。文本的注釋要寫在代碼的上方或右邊,不要寫在代碼的下方。v?php/echo()函數輸出一個或多個字符串。/*echo()實際上不是一個函數,因此您無需對其使用括號。不過,如果您希望向echo()傳遞一個或多個參數,那么使用括號會發(fā)生解析錯誤。*/echo我正在學習PHPM;?在瀏覽器中只輸出:我正在學習PHP而注釋了的文本卻沒有顯示。第三節(jié)PHP輸出函數PHP輸出函數有echo()函數與print()函數以及格式化輸出函數printf()函數和 sprintf()
3、函數。、echo()函數echo()函數輸出一個或多個字符串,可以用圓括號,也可不用,在實際應用中, 我們一般不用圓括號;echo更象一條語句,無返回值。?phpecho(天天氣很好,我們出去玩! M).MM;echo”今天天氣很妬 我們出去玩! ”;?瀏覽器中輸出為:今天天氣很好,我們出去玩!今天天氣很好,我們出去玩!二、pint()函數print()函數輸岀一個或多個字符串,可以用圓括號,也可不用,在實際應用中, 我們一般不用圓括號;pint()函數有返回值,其返回值為1,當其執(zhí)行失敗(比 如斷線)時返回flaseo”;print”今天天氣很妬我們出去玩! ”vbr”;echo print
4、”今天天氣很好,我們出去玩! ”;?瀏覽器中輸出為:今天天氣很好,我們出去玩!今天天氣很好,我們出去玩!今天天氣很好,我們出去玩! 1第一句、第二句都輸出了 “今天天氣很好,我們出去玩!”,第三除了輸出了 “今 天天氣很好,我們出去玩!”夕卜,還輸出了返回值echo()函數與print()函數兩者的功能幾乎完全一樣,有一點不同就是echo()函數 無返回值,print。函數有返回值。且echo()函數稍快于print()函數。三、printf()函數printf()函數輸岀格式化的字符串。其中格式化字符串包括兩部分內容:一部分是 正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“”
5、開始, 后跟一個或幾個規(guī)定字符,用來確定輸岀內容格式。參量表是需要輸出的一系列參數,其個數必須與格式化字符串所說明的輸出參數 個數一樣多,各參數之間用分開,且順序一一對應,否則將會岀現意想不 到的錯誤。常用類型轉換符%b整數轉二進制%c整數轉ASCII碼%d整數轉有符號十進制%f倍精度轉浮點%o整數轉八進制%s整數轉字符串%u整數轉無符號十進制%x整數轉十六進制(小寫)%x整數轉十六進制(大寫)瀏覽器輸岀的內容是:今天我買了 10本書printf()函數有返回值,其返回值為字符串的長度。此時瀏覽器輸出的內容是:今天我買了 10本書16其中“今天我買了 10本書”為printf()函數格式化后的
6、字符串,“16”為printf()函 數的返回值字符串的長度16,需要通過echo才能輸出。四、sprintf()函數sprintf()函數與printf()函數類似,printf()函數的返回值是字符串的長度,而sprintf() 函數的返回值側是字符串的本身。因此,sprintf()函數必須通過echo才能輸岀。我們在瀏覽器中可以看到輸岀為今天我買了 10本書,如果省略掉了 echo,那么瀏覽 器中輸出為空。sprintf()和printf()的用法和C語言中的printf()非常相似。我們經常用sprintf()將十進制轉換為其它進制。如:?php$a = 12;echo sprintf
7、 (%b,$a);在瀏覽器中輸岀為:1100即將12轉為二進制為1100o第四節(jié)卩肝變變量用于存儲值,比如數字、文本字符串或數組。一旦設置了某個變量,我們就 可以在腳本中重復地使用它。PHP的變量必須以$符開始,然后再加上變量名。一、變量的命名1. 變量名必須以字母或者下劃線開頭,后面跟上任意數量的字母、數字或者 下劃線。2. 變量名不能以數字開頭,中間不能有空格及運算符。3. 變量名嚴格區(qū)分大小寫,即$UserName與$username是不同的變量。4. 為避免命名沖突,不允許使用與PHP內置的函數相同的名稱。5. 在為變量命名時,盡量使用有意義的字符串。$n ame;$_password
8、;$book1;二、變的賦值為變量賦值有兩種方式:傳值賦值和引用賦值,這兩種賦值方式在對數據的處理 上存在很大差別。這種賦值方式使用u=n直接將一個變量(或表達式)的值賦給變量。使用這種 賦值方式,等號兩邊的變量值互不影響,任何一個變量值的變化都不會影響到另 一個變量。從根本上講,傳值賦值是通過在存儲區(qū)域復制一個變量的副本來實現 的。應用傳值賦值的示例代碼如下?!?echo ”變b的值為”$b;?在上面的代碼中,執(zhí)行u$a = 33”語句時,系統(tǒng)會在內存中為變量a開辟一個 存儲空間,并將“33”這個數值存儲到該存儲空間。執(zhí)行“$b = $a”語句時,系統(tǒng)會在內存中為變量b開辟一個存儲空間,并將
9、變 量a所指向的存儲空間的內容復制到變量b所指向的存儲空間。執(zhí)行u$b = 44”語句時,系統(tǒng)將變量b所指向的存儲空間保存的值更改為“44”, 而變量a所指向的存儲空間保存的值仍然是“33”。因此,我們在瀏覽器上看到的內容為:變量a的值為33變量b的值為442、引用賦值引用賦值同樣也是使用u=n將一個變量的值賦給另一個變量,但是需要在等號 右邊的變量前面加上一個符號。實際上這種賦值方式并不是真正意義上的 賦值,而是一個變量引用另一個變量。在使用引用賦值的時候,兩個變量將會指 向內存中同一存儲空間。因此任何一個變量的變化都會引起另外一個變量的變 化。應用引用賦值的示例代碼如下。?php$a =
10、33;$b = &$3;$b = 44;echo ”變量a的值為M.$a.;echo ”變量b的值為”$b;?在上面的代碼中執(zhí)行“$a = 33”語句時,對內存進行操作的過程與傳值賦值相 同,這里就不再介紹了。執(zhí)行u$b = &$語句后,變量b將會指向變量a所 占有的存儲空間。執(zhí)行u$b = 44M語句后,變量b所指向的存儲空間保存的值變?yōu)椤?4”。此時由 于變量a也指向此存儲空間,所以變量a的值也會變?yōu)椤?4”。因此,我們在瀏覽器上看到的內容為:變量a的值為44變量b的值為44三、變的作用域在使用PHP語言進行開發(fā)的時候,我們幾乎可以在任何位萱聲明變量。但是變 量聲明位置及聲明方式的不同決定
11、了變量作用戚的不同。所謂的變量作用域,指 的是變量在哪些范圍內能被使用,在哪些范圍內不能被使用。PHP中的變量按 照作用域的不同可以分為局部變量和全局變量。1v局部變局部變量是聲明在某一函數體內的變量,該變量的作用范圍僅限于其所在的函數 體的內部。如果在該函數體的外部引用這個變量,則系統(tǒng)將會認為引用的是另外 個變量。應用局部變量的示例代碼如下。?phpfunction local()$a = ”“這是內部函數羅衽函數內部聲明一個變并賦值echo ”函數內部變的值為M.$a.M-;local();調用函ftlocalQ,用來打印出變*a的值$a = 這是外部函數杯;在函數外部再次聲明變并賦另一個
12、值echo ”函數外部變的值為”$a;在瀏覽器中輸岀為:函數內部變量a的值為“這是內部函數 7函數外部變量a的值為“這是外部函數”2、全局變量全局變量可以在程序的任何地方被訪問,這種變量的作用范圍是最廣泛的。要將 一個變量聲明為全局變量,只需在該變量前面加上“global”關鍵字,不區(qū)分大 小寫,也可以是“GLOBAL”。使用全局變量,我們能夠實現在函數內部引用函 數外部的參數,或者在函數外部引用函數內部的參數。應用全局變量的示例代碼如下。在函數內部引用函數外部的參數:?php$a =這是外部函數;在外部定義一個變function local()global $*/將變聲明為全局變echo ”
13、在local函數內部獲得變的值為,.$a/,H;local(); /調用函ftlocal()F用于輸出local函數內部變的值?在瀏覽器中輸出為:在local函數內部獲得變量a的值為“這是外部函數”在函數外部引用函數內部的參數:在瀏覽器中輸出為:在local函數外部獲得變量a的值為“這是內部函數” 應用全局變量雖然能夠使我們更加方便地操作變量,但是有的時候變量作用域的 擴大,會給開發(fā)帶來麻煩,可能會引發(fā)一些預料不到的問題。將一個變量聲明為全局變量,還有另外一種方法,就是利用$GLOBALSQ數組。3、掙態(tài)變函數執(zhí)行時所產生的臨時變量,在函數結束時就會自動消失。當然,因為程序需 要,函數在循壞過
14、程中不希望變量在每次執(zhí)行完函數就消失的話,那么我們就要 采用靜態(tài)變量,靜態(tài)變量是指用static聲明的變量,這種變量與局部變量的區(qū)別 是,當靜態(tài)變量離開了它的作用范圍后,它的值不會自動消亡,而是繼續(xù)存在, 當下次再用到它的時候,可以保留最近一次的值。應用靜態(tài)變量的示例代碼如下。?phpfunction add()static $a = 0;$a+;echo $a.;add 0;add ();add 0;?在瀏覽器中輸出為:123這段程序中,主要定義了一個函數add(),然后分3次調用add()o如果用局部變量的方式來分工這段代碼,3次的輸岀應該都是仁但實際輸出卻 是1、2和3。這是因為,變量a
15、在聲明的時候被加上了一個修飾符static,這就標志著a變量 在add()函數內部就是一個靜態(tài)變量了,具備記憶自身值的功能,當第一次調用 add時,a由于自加變成了 1,這個時候,a就記住自己不再是0,而是1 了, 當我們再次調用add時,a再一次自加,由1變成了 2,。由此,我們就可以 看出靜態(tài)變量的特性了。4、可變變可變變量是一種獨特的變量,它可以動態(tài)的改變一個變量的名稱,方法就是在該 變量的前面加一個變量符號“$。v?php$a= hello1; 普通變$a = world*; 可變變,相當于$hello=wold;echo $a.wM;echo $a.;echo $hello.;ech
16、o M$a $aM.wM;echo ”$a $hello“;這種寫法更準確并且會輸出同樣的結果?在瀏覽器中輸岀為:helloworldworldhello worldhello world5、預定義變量預定義變量又稱為超級全局變量數組,是PHP系統(tǒng)中自帶的變量,不需要開發(fā) 者重新定義,它可讓你的程序設計更加的方便快捷。在PHP腳本運行時,PHP 會自動將一些數據放在超級全局數組中。PHP預定義變量變量作用$GLOBALSQ儲存當前腳本中的所有全局變量,其KEY為變量名,VALUE為變量值$_SERVERQ當前WEB服務器變量數組$_GET存儲以GET方法提交表單中的數據$_POST存儲以POS
17、T方法提交表單中的數據$_COOKIEQ取得或設置用戶瀏覽器Cookies中存儲的變量數組$_FILESQ存儲上傳文件提交到當前腳本的數據$_ENV0存儲當前WEB環(huán)境變量$_REQUEST0存儲提交表單中所有請求數組,其中包括$_GET、 $_POST、$_COOKIE Jfl$_SESSION 中的所有內容$_SESSION存儲當前腳本的會話變量數組四、變量的數據類型數據類型是具有相同特性的一組數據的統(tǒng)稱。PHP早就提供了豐富的數據類型, PHP 5中又有更多補充。數據類型可以分為3類:標量數據類型、復合數據類 型和特殊數據類型。標量類型(四種):整型(int, integer)浮點型(f
18、loat, double, real)布爾型(bool, boolean)寧符串(string)復合類型(兩種):數組(array)對象(object)特殊類型(兩種):資源(resource)空值(NULL)1 v 整型(integer)PHP中的整型指的是不包含小數部分的數據。在32位操作系統(tǒng)中,整型數據的 有效范圍在-2147483648+2147483647”之間。整型數據可以用十進制(基 數為10)、八進制(基數為8,以0作為前綴)或十六進制(基數為16,以Ox13作為前綴)表示,井且可以包含“ + ”和U-Mo整型數據的用法如下面代碼所示。?php$a = 100;十進制整型數據1
19、5$b = -034; 八進制整型數據$c = OxBF;十六進制整型數據echo $a.n;echo $b.;echo $c;在瀏覽器中輸出為:100-28191如果給定的數字超出了整型數據規(guī)定的范圍,則會產生數據溢出。對于這種情況, PHP會自動將整型數據轉化為浮點型數據。2、浮點型(float)浮點型數據就是通常所說的實數,可分為單精度浮點型數據和雙精度浮點型數 據。浮點數主要用于簡單整數無法滿足的形式,比如長度、重量等數據的表示。 浮點型數據的用法如下面代碼所示。?php$a = 1.2;$b :$c =-0.34;= 1.8e4; 該浮點數表1.8X1O4echo $a.*u; ec
20、ho $b/M; echo $c;?在瀏覽器中輸出為:1.2-0.34180003、布爾型(boolean)布爾型數據是在PHP 4中開始岀現的,一個布爾型的數據只有“true”和“false” 兩種取值,分別對應邏輯“真”與邏輯“假”。布爾型變量的用法如下面代碼所 示。在使用布爾型數據類型時,“true”和“false”兩個取值是不區(qū)分大小寫的。 也就是說“TRUE”和“FALSE”同樣是正確的。在瀏覽器中輸出為:1當布爾值為“true”時,輸出為1,當布爾值為“false”時,輸岀為空。4、字符串(string)字符串是一個字符的序列。組成字符串的字符是任意的,可以是字母、數字或者 符號。
21、在PHP中沒有對字符串的最大長度進行嚴格的規(guī)定。在PHP中定義字 符串有3種方式:使用單引號()定義、使用雙引號(*)定義和使用定界符() 定義。下面是一個使用字符串的例子。?php$var = H中國人”;echo ”我是$var.MM;echo 我是$varTvbr:echo M今天天氣很好! ,.HM;echo 我們去圖書館。Tvbr”;echo 在瀏覽器中輸出為:我是中國人我是$var今天天氣很好!我是中國人我是$var今天天氣很好!我們去圖書館。我是一個中國人php中單引號和雙引號的最大區(qū)別就是,雙引號比單引號多一步解析過程。雙引 號會把雙引號中的變量及轉義字符解析出來。而單引號則不
22、管它的內容是什么, 都作為字符串輸岀。在雙引號中,中文和變量一起使用時,變量最好要用0括起來,或變量前后的字 符串用雙引號,再用與變量相連?!保籩cho -ft們都是$str,應該多學習.w.MM;echo ft們都是“$str”.應該多學習。”;?在瀏覽器中輸岀為:我們都是我們都是年輕人,應該多學習。我們都是年輕人,應該多學習。第一句輸岀因為變量沒用0括起來,或者沒有將字符串分開,再用u.n與變量相 連,因此變量及其后面的字符串不能輸出,第二、三句輸出都正常。在一般情況下,我們盡量使用單引號,因為在理論上,單引號的運行速度要快些, 如果遇到有變量及轉義字符需要解析時,我們才用雙引號。F面是一
23、些常用的轉義字符:轉移序列描述n換行符r回車符t制表符反斜線$美元符”雙引號值得注意的是,“n”,“ r”和“ t”三個轉義字符在瀏覽器中不能反應出來, 只能在源文件看到。PHP定界符的作用就是按照原樣,包括換行格式什么的,輸岀在其內部的東西; 在PHP定界符中的任何特殊字符都不需要轉義;PHP定界符中的PHP變量會 被正常的用其值來替換。使用定界符應注意以下幾點:(1) 在vvv之后的字符Eof是自己定義的,隨便什么都是可以的,但是結尾處 的字符一定要和他一樣,他們是成對出現的;(2) 結尾的Eof;, 一定要另起一行,并且除了 Eof;這個定界符結尾標識之外不 能有任何其他字符,前后都不能
24、有,包括空格;(3) 如果在定界符中間岀現有PHP的變量,你只需要像在其它字符串中輸岀 一樣寫就行了,變量$var之所以要用括起來是要告訴PHP解析器這是一個 PHP變量,其實不用也是可以的,但是有可能會產生歧義。5、數組(array)數組是一系列相關的數據以某種特定的方式進行排列而組成的集合。組成這個集 合的各個數據可以是基本數據類型,也可以是復合數據類型;可以是相同的數據 類型,也可以是不同的數據類型。數組里的每一個數據元素都有其唯一的編號,稱為索引。索引用于指定數組中特 定的數據元素。在有的語言中數組的索引必須是數字編號,而在PHP中,索引 可以是數字編號,也可以是字符串。一個簡單的PH
25、P數組的應用示例代碼如下。how ,2=are,three-youw);echo $network2;echo $networkthree;?在瀏覽器中輸岀為:areyou6、對象(object)對象是面向對象語言中的一個核心概念,對象就是類的一個實例。在了解對象之 前我們先簡單介紹一下什么是“類”。在面向對象語言中,人們把各個具體事物 的共同特征抽取出來,形成一個一般的概念,也就構成了一個“類”。在PHP中類的定義方式如下。class類名類里包含的內容;在PHP中,通過unewn關鍵字來實例化一個類并得到該類的一個對象。類和 對象的應用示例如下面代碼所示。;$book2 = new Book
26、(); 實例化一 Book類的對ftbook2echo $book2-getBookName(JSP);?21在瀏覽器中輸出為:PHPJSP7、資源(resource)資源是PHP提供的一種特殊數據類型,該數據類型用于表示一個PHP的外部 資源,比如一個數據庫的訪問操作,或者一個網絡流的處理等。雖然資源也是一 種數據類型,但是我們卻不能直接對它進行操作。PHP提供了一些特定的函數, 用于建立和使用資源。比如“mysql_connect()”函數用于建立一個MySQL數 據的連接,“fopen()”函數用于打開一個文件等。應用資源數據類型的示例代碼如下。?php$cn = mysql_con n
27、ect(localhost ,丫 oot);echo get_resource_type($cn).;$fp = fopen(”foo”,”w“);echo get_resource_type($fp);?在瀏覽器中輸出為:mysql linkstream8、空值(NULL)NULL是PHP 4開始引入的一個特殊的數據類型,這種數據類型只有一個值 NULLo在PHP中,如果變量滿足以下幾種情況,那么該變量的值就為NULL。 變量未被賦予任何值。變量被賦值為NULL。被unset()函數處理后的變量。下面是使用NULL數據類型的一個示例。五、變量類型的轉換PHP中的類型轉換包括兩種方式,即自動類
28、型轉換和強制類型轉換。下面我們 分別介紹這兩種類型轉換的實現方式及應用過程。1.自動類型轉換自動類型轉換是指,在定義變量時不需要指定變量的數據類型,PHP會根據引 用變量的具體應用環(huán)境將變量轉換為合適的數據類型。如果所有運算數都是數字,則將選取占用字節(jié)最長的一種運算數的數據類型作為 基準數據類型;如果運算數為字符串,則將該字符串轉型為數字然后再進行求值 運算。字符串轉換為數字的規(guī)定為如果字符串以數字開頭,則只取數字部分而去 除數字后面部分,根據數字部分構成決定轉型為整型數據還是浮點型數據;如果 字符串以字母開頭,則直接將字符串轉換為0。?php$a = 1 +1.23;$b = 2 + M3.
29、14H;$c = 3 + Mabcn;echo $a.u;echo $b”vbi;echo $c.u;?在瀏覽器中輸出為:2.235.143在第1個賦值運算式中,運算數包含了整型數字“什和浮點型數字1.23,首 先取浮點型數據類型作為基準數據類型。賦值后變量a的數據類型為浮點型。在第2個賦值運算式中,運算數包含了整型數字“2”和字符串型數據“3.14”, 首先將字符串轉換為浮點型數據“3.14”,然后進行加法運算。賦值后變量b的 數據類型為浮點型。在第3個賦值運算式中,運算數包含了整型數字“3”和字符串型數據“abc”, 首先將字符串轉換為整型數字0,然后進行加法運算。賦值后變量c的數據類型
30、為整型。2、強制類型轉換強制類型轉換允許我們手動將變量的數據類型轉換成為指定的數據類型。PHP 強制類型轉換與C語言或者Java語言中的類型轉換相似,都是通過在變量前面 加上一個小括號,并把目標數據類型填寫在括號中來實現的。在PHP中強制類型轉換的具體實現方式如下表所示。PHP強制類型轉換的實現方式轉換格式轉換結果實現方式(int),(integer)將其他數據類型強制轉換為整型$a = ”3”;$b = (int)$a; /也可寫為$ = (integer)$a;(bool),(boolea n)將其他數據類型 強制轉換為布爾型$a = ”3”;$b = (bool)$a; II也可寫為$匕
31、=(boolean)$a;(float),(double),(real)將其他數據類型 強制轉換為浮點型$a = ”3”;$b = (float)$a;$c = (double)$a;$d = (real)$a;(string)將其他數據類型 強制轉換為字符串$a = 3;$b = (strin g)$a;(array)將其他數據類型強制轉換為數組$a = ”3”;$b = (array)$a;(object)將其他數據類型強制轉換為對象$a = ”3”;$b = (object)$a;雖然PHP提供了比較寬泛的類型轉換機制,為開發(fā)者提供了很大便利,但同時也存在養(yǎng)一些問題,比如將字符串型數據轉
32、換為整型數據該如何轉換、將整型數 據轉換為布爾型數據該如何轉換等。如果沒有對上述類似的情形做出明確規(guī)定, 那么在處理類型轉換問題時就會出現一些問題,幸運的是PHP為我們提供了相 關的轉換規(guī)定。1)、其他數據類型轉換為整型的規(guī)則其他數據類型轉換為整型原類型目標類型轉換規(guī)則浮點型整犁向下取整,即不會四舍五入而是直接去掉浮點型數據小數點后邊的部分,只保留整數部分布爾型整型TRUE轉換成整型數字u1n , false轉換成整型數字“0”字符串(1) 字符串為純整型數字,轉換成相應的整型數字(2) 字符串為帶小數點的數字,轉換時去除小數點后面的 部分,保留整數部分(3) 字符串以整型數字開頭,轉換時去除
33、整型數字后面的 部分,然后按照規(guī)則1進行處理(4) 字符串以帶小數點的數字開頭,轉換時去除小數點后 面的部分,然后按規(guī)則2進行處理(5) 字符串內容以非數字開頭,直接轉換為0將其他數據類型轉換為整型的示例代碼如下所示。?php$a = M123;$b = n123sunyangi,;$c = M2.32w;$d = M2.32abc;$e = sunyang123;$f = TRUE;$g = FALSE;$h = 3.1415926; echo (lnt)$a.M;echo (int)$b.;echo (int)$c.H;echo (int)$d.;echo (int)$e.;echo (l
34、nt)$f.M;echo (int)$g.M;echo (int)$h.;?在瀏覽器中輸出為:123123220103浮點型數據向整型數據轉換的時候,需要注意以下兩種情況。如果幾個浮點型數據相乘,應將大于1的數放在最前面,并將整個式了括起來, 不然的話容易出錯。以下示例代碼中,第一及第四個輸岀正確,其他三個輸出都 出現了錯誤。?phpecho (lnt)(46.86*0.26*0.74).MM;/46.86*0.26*0.74=9.015864echo (int)46.86*0.26*0.74.H,;Z/其結果為46*0.26*0.74=8.8504echo (int)0.26*0.74*46
35、.86,wM;echo (int)(100*0.1*0.7).M;echo (int)(0.1*0.7*100);?在瀏覽器中輸出為:8.8504076如果浮點型數據相除時,也應將整外除式括起來,以免岀現錯誤。以下示例代碼中,第一及第三個輸岀正確,其他兩個輸岀都出現了錯誤。?phpecho (int)(7.8/3.2).,;/7.8/3.2=2.4375echo (int)7.8/3.2.*H;/M結果為7/3.2=2.1875echo (int)(3.2/7.8).,;/3.2/7.8=0.410256410256echo (int)3.2/7.8;/其結果為3/7.8=0.38461538
36、4615?在瀏覽器中輸岀為:22.187500.3846153846152)、其他數據類型轉換為浮點型的規(guī)則其他數據類型轉換為浮點型原類型目標類型轉換規(guī)則整型浮點型將整型數據直接轉換為浮點型,數值保持不變布爾型浮點型TRUE轉換成浮點型數字u1n , false轉換成浮點型數字“0”字符串浮點型(1) 字符串為整型數字,直接轉換成相應的浮點型數字(2) 字符串以數字開頭,轉換時去除數字后面的部分, 然后按照規(guī)則1進行處理(3) 字符串以帶小數點的數字開頭,轉換時直接去除數 字后面的部分,只保留數字部分(4)字符串以非數字內容開頭,直接轉換為0將其他數據類型轉換為浮點型的示例代碼如下。?php$
37、a =:M123;$b =$c =123sunyang;:”2.32”;$d :s ”232abc”;$e = vsunyang123; $f = TRUE;$g = FALSE;$h = 1234;echo (float)$a.n; echo (float)$b.*; echo (float)$c.M; echo (float)$d.; echo (float)$e.; echo (float)$f.M; echo (float)$g.H; echo (float)$h.;在瀏覽器中輸出為:1231232.322.3201012343)、其他數據類型轉換為布爾型的規(guī)則其他數據類型轉換為布爾型
38、原類型目標類型轉換規(guī)則整犁布爾型0轉換為false,非零的其他整型數字轉換為true浮點型布爾型0.0轉換為false,非零的其他浮點型數字轉換為true字符串布爾型空字符串或字符串內容為零轉換為false,其他字符串轉 換為trueNULL布爾型直接轉換為false數組布爾型空數組轉換為false,非空數組轉換為true將其他數據類型轉換為布爾型的示例代碼如下所示。?php$a = 0;$b = 123;$c = 0.0;$d = 3.14;$e =$f = u0;$g = TRUE”;$h = array();$i = array(tfa,Mbtf,wcff);$j = NULL;echo
39、 var_dump(boolean)$a).,H; echo va_dump(boolean)$b)vbr; echo var_dump(boolean)$c).vbr”; echo var_dump(boolean)$d).; echo va_dump(boolean)$e):vbr; echo var_dump(boolean)$f).vbr”; echo var_dump(boolean)$g).l,M; echo var_dump(boolean)$h).vbr; echo var_dump(boolean)$i).,f,f; echo var_dump(boolean)$j);?在瀏
40、覽器中輸出為:bool(false)bool(true)bool(false)bool(true)bool(false)bool(false)bool(true)bool(false)bool(true)bool(false)4)、其他數據類型轉換為字符串的規(guī)則其他數據類型轉換為字符串原類型目標類型轉換規(guī)則字符串轉換時直接在整型兩邊加上雙引號作為轉換后的結果浮點型字符串轉換時直接在浮點型兩邊加上雙引號作為轉換后的結果布爾型字符串true轉換為字符串“仁,false轉換為字符串“0”數組字符串直接轉換為字符串“Array”對象字符串直接轉換為字符串“Object”NULL字符串直接轉換為空字符串
41、將其他數據類型轉換為字符串的示例代碼如下。?php$a = 123;$b = 3.14;$c = TRUE;$d = FALSE;$e = array(abc); $f=NULL; echo (string)$a.,; echo (string)$b.; echo (string)$c.; echo (string)$d.f; echo (string)$e.; echo (string)$f;? 在瀏覽器中輸出為: 1233.141Array5)、其他數據類型轉換為數組的規(guī)則其他數據類型轉換為數組原類型目標類型轉換規(guī)則整型數組將這幾個數據類型強制轉換為數組時,浮點型得到的數組只包含一個數據元
42、素,布爾型該數據就是未轉換前的數據,字符串并且該數據的數據類型也與未轉換前相同對象數組轉換時將對象的成員變量的名稱作為各數組元素的key, 而轉換后數組每個key的value都為空(1)如果成員變量為私有的(private),則轉換后key的名稱為“類名+成員變量名”(2)如果成員變量為公有的(public),則轉換后key的名稱為“成員變量名”(3)如果成員變量為受保護的(protected), 則轉換后key的名稱為+成員變量名”NULL數組直接轉換為一個空數組將其他數據類型轉換為數組的示例代碼如下。;echo var_dump(array)$b).;echo var_dump(array
43、)$c)”vbr;echo var_dump(array)$d).*bP*;echo var_dump(array)$e).*;echo var_dump(array)$f);?在瀏覽器中輸岀為:array(1)0=int(123)array(1) 0= float(3.14)array(1) 0= bool(true)array(1)0= string(5) Helloarray(3) nAprivaten= NULL Mpublic= NULL protected” NULLarray(O) 6)、其他數據類型轉換為對象的規(guī)則其他數據類型轉換為對象原類型目標類型轉換規(guī)則幣型浮點型 布爾型
44、字符串對象將其他類型變量轉換為對象時,將會新建一個名為“scalar”的屬性, 并將原變量的值存儲在這個屬性中數組對象將數組轉換為對象時,數組的key作為對 象成員變量的名稱,對應各個key的value 作為對象成員變量保存的值NULL對象直接轉換為一個空對象將其他數據類型轉換為對象的示例代碼如下。aaa,Hb=bbb,*cH=ccc);$f=NULL;echo var_dump(object)$a).H;echo var_dump(object)$b).M;echo var_dump(object)$c).;echo V3_dump(object)$d)vbi;echo var_dump(o
45、bject)$e)”vbr; echo var_dump(object)$f);?在瀏覽器中輸岀為:object(stdClass)#1 (1) nscalar= int(123)33object(stdClass)#1 (1) nscalarn= float(3.14)object(stdClass)#1 (1) nscalar= bool (true)object(stdClass)#1 (1) nscalarH= string(5) Helloobject(stdClass)#1 (3) naH= string(3) aaa*1 HbH= string(3) HbbbH cM= stri
46、ng(3) cccobject(stdClass)#1 (0) 六、變量的常用函數1v變轉換函數在PHP強制轉換中,除了上述方法外,還可應用函數進行轉換,常用的函數有 以下幾種。1) % settype()函數settype()函數將變量設置為指定類型,當某個變量用settype()函數設定后,該變 量的類型就發(fā)生改變,其語法如下:bool settype (mixed $var, string $type)將變量var的類型設置成type。type的可能值為:“boolean”(或為“bool”), “integer”(或為 uintn ), “float”,“string”,“array”
47、,“object”,“null”。如果 成功則返回TRUE,失敗則返回FALSEo使用settype()函數的示例代碼如下。?php$a = ”56kg”;$b = true;settype($a,floar).M;settype($b,”sting”)”vbr”;echo $a.*;echo $b;?在瀏覽器中輸出為:5.6可以看出,原來為字符串的$8經settype設置后,轉換為浮點數“5.6”。原來為 布爾值的$匕經settype設置后,true轉換為字符串“T。2) 、intval()函數、floatval()函數、strval()函數這三個函數是將原變量通過轉換后得到新類型的新變量,
48、原變量的類型和值都不 變,括號中放入原變量。使用intval()函數、floatval()函數、strval()函數的示例代碼如下。?php$a = ”56kg”;$b = 2001;$c = intval($a);$d = floatval($a);$e = strval($b);echo $a.*;echo $bvbr;echo $c.;echo $d.;echo $e;?在瀏覽器中輸岀為:5.6kg200155.62001可以看出,原變量a, b并沒有改變,變量c為整數5,變量d為浮點數5.6, 變量e為字符串2001,而原變量b為整數2001 o2、變檢查函數1)、isset()函數isset()函數用于檢查某個變量是否存在,如果存在則返回TRUE,否則返回FALSEo使用isset()函數的示例代碼如下。?php$a = M2001 年“;$c = 3.14;echo isset($a).;echo isset($b).;echo isset($c);?在瀏覽器中輸出為:11因$玄,$c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 備份文件備份周期統(tǒng)計表
- 食品加工工藝與安全規(guī)范考試卷
- 進銷存軟件開發(fā)服務合作協(xié)議
- 2025年信息安全與風險管理考試試題及答案
- 小兒高熱驚厥的急救
- 2025年社會變遷與家庭教育考試試題及答案
- 2025年母嬰護理師考試試題及答案
- 2025年應用統(tǒng)計學基礎能力考試試卷及答案
- 2025年公共衛(wèi)生管理課程考試試卷及答案
- 2025年兒童發(fā)展與家庭教育考試試卷及答案
- ATP熒光檢測儀參考標準值
- 醫(yī)院電梯安全培訓(同名873)課件
- 無人機飛行計劃申請表
- 主動脈夾層腔內隔絕術操作規(guī)范
- 初三自主招生簡歷范文自薦信
- 電梯維修報價表格
- 礦區(qū)專項邊坡治理方案設計
- 國產上海7120手表機芯
- 4配電柜安全風險點告知牌
- 《賣炭翁》中考閱讀經典賞析試題(共27題)
- 養(yǎng)老服務禮儀與實務全書ppt完整版課件最全電子教案正本書教學教程
評論
0/150
提交評論