版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2.1 PHP代碼基本語(yǔ)法PHP基本語(yǔ)法格式如下:說(shuō)明:①<?php…?>,PHP起始和結(jié)束標(biāo)記。②每句結(jié)束加分號(hào)“;”,否則程序運(yùn)行會(huì)出現(xiàn)錯(cuò)誤。③echo為PHP的輸出語(yǔ)句。2.1.1 PHP開(kāi)始標(biāo)記與結(jié)束標(biāo)記PHP是一種嵌入式的腳本語(yǔ)言,這意味著PHP代碼一般是嵌入HTML中的。下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
【例2-1】一個(gè)簡(jiǎn)單的PHP程序annotation.php代碼如下:上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
從上面的程序代碼中可以看出,在多數(shù)情況下,PHP代碼都是與HTML代碼混雜在一起的。當(dāng)包含了PHP程序的頁(yè)面被請(qǐng)求時(shí),Web服務(wù)器會(huì)自動(dòng)編譯并處理頁(yè)面中“<?php”與“?>”之間的代碼,將處理結(jié)果以HTML的形式傳送給瀏覽器,并顯示最終的處理結(jié)果。要讓W(xué)eb服務(wù)器能夠區(qū)分PHP代碼與普通的HTML代碼,就要將PHP代碼放在特殊的標(biāo)記內(nèi)。PHP標(biāo)記告訴Web服務(wù)器PHP代碼何時(shí)開(kāi)始、結(jié)束。這兩個(gè)標(biāo)記之間的代碼都將被解釋成PHP代碼,PHP標(biāo)記用來(lái)隔離PHP代碼和HTML代碼。PHP共提供了4種不同風(fēng)格的標(biāo)記:上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
1.XML標(biāo)準(zhǔn)風(fēng)格XML風(fēng)格使用標(biāo)準(zhǔn)分界符“<?php”和“?>”作為PHP的開(kāi)始和結(jié)束標(biāo)記,是PHP默認(rèn)的風(fēng)格,也是本書推薦使用的PHP標(biāo)記風(fēng)格。上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
2.簡(jiǎn)短風(fēng)格簡(jiǎn)短風(fēng)格使用短標(biāo)簽“<?”和“?>”作為PHP的開(kāi)始和結(jié)束標(biāo)記。要使用這種方式,必須在php.ini配置文件中將short_open_tag設(shè)置為“on”(新版本的PHP中默認(rèn)設(shè)置為“off”),否則編譯器將不予解析。上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
3.SCRIPT腳本風(fēng)格SCRIPT風(fēng)格使用“<scriptlanguage="php">”和“</script>”作為PHP的開(kāi)始和結(jié)束標(biāo)記。這種標(biāo)記可以在任何情況下使用,不過(guò)它與JavaScript風(fēng)格的嵌入方式類似,使用不方便,因此不建議使用。上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
4.ASP風(fēng)格ASP風(fēng)格使用“<%”和“%>”作為PHP的開(kāi)始和結(jié)束標(biāo)記。這種模仿了ASP、JSP風(fēng)格的一種標(biāo)記,為ASP、JSP編程人員轉(zhuǎn)向PHP編程帶來(lái)了方便。使用這種方式,必須在php.ini配置文件中將asp_tag設(shè)置為“on”,否則這種標(biāo)記風(fēng)格不起作用??紤]到程序移植問(wèn)題,這種風(fēng)格也不推薦使用。上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
2.1.2 PHP注釋PHP注釋是對(duì)代碼的解釋和說(shuō)明,PHP解釋器將忽略注釋中的所有文本。事實(shí)上,PHP分析器將跳過(guò)等同于空格的注釋。1.注釋的原則注釋在寫代碼的過(guò)程中非常重要,好的注釋不僅能讓代碼閱讀起來(lái)更輕松,而且還有利于開(kāi)發(fā)人員之間的溝通和后期的維護(hù)。在寫代碼的時(shí)候,一定要注意注釋的規(guī)范。①注釋語(yǔ)言必須準(zhǔn)確、易懂、簡(jiǎn)潔。②注釋一般寫在代碼的開(kāi)發(fā)和結(jié)束位置。③要求注釋占程序代碼的比例達(dá)到20%左右。④避免在注釋中使用縮寫。上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
2.注釋風(fēng)格在例2-1程序annotation.php代碼中,PHP提供了以下3種風(fēng)格的程序注釋:上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
(1)C++風(fēng)格的單行注釋這種注釋方式使用“//”的形式實(shí)現(xiàn)。在“//”之后,“//”所在行結(jié)束之前或者PHP結(jié)束標(biāo)記之前的內(nèi)容都是注釋部分。而PHP結(jié)束標(biāo)記后的內(nèi)容則作為HTML代碼進(jìn)行處理。(2)Shell腳本風(fēng)格的注釋這種注釋方式使用“#”的形式實(shí)現(xiàn),與“//”功能是等效的。(3)C風(fēng)格的多行注釋當(dāng)要添加的注釋非常多時(shí),往往會(huì)分成多行來(lái)顯示,這時(shí)需要用到多行注釋。PHP采用C語(yǔ)言的多行注釋風(fēng)格,注釋內(nèi)容以“/*”符號(hào)開(kāi)始,以“*/”符號(hào)結(jié)束。為了美觀,通常在每一行注釋的開(kāi)始位置也加入一個(gè)“*”。例如:上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
程序annotation.php的運(yùn)行結(jié)果如圖2-1所示。通過(guò)運(yùn)行結(jié)果與源程序代碼相比較,PHP代碼中的注釋被PHP預(yù)處理忽略。2.1.3 PHP語(yǔ)句及語(yǔ)句塊PHP程序一般由若干條PHP語(yǔ)句構(gòu)成,每條PHP語(yǔ)句完成某項(xiàng)操作。PHP中的每條語(yǔ)句以英文分號(hào)“;”結(jié)束,只有PHP結(jié)束標(biāo)記之前的PHP語(yǔ)句可以省略結(jié)尾分號(hào)“;”。1.簡(jiǎn)單的語(yǔ)句每行至多包含一條語(yǔ)句,例如:上一頁(yè)下一頁(yè)返回2.1PHP代碼基本語(yǔ)法
2.復(fù)合語(yǔ)句復(fù)合語(yǔ)句也稱塊語(yǔ)句,是包含在大括號(hào)中的語(yǔ)句序列,形如“{語(yǔ)句}”。單獨(dú)使用語(yǔ)句塊時(shí),沒(méi)有任何意義,語(yǔ)句塊只有和條件控制語(yǔ)句(if-else)、循環(huán)語(yǔ)句(for和while)、函數(shù)等一起使用時(shí)才有意義。例如:上一頁(yè)返回2.2 PHP數(shù)據(jù)類型程序開(kāi)發(fā)過(guò)程中經(jīng)常需要操作數(shù)據(jù),而每個(gè)數(shù)據(jù)都有其對(duì)應(yīng)的類型。PHP語(yǔ)言中的數(shù)據(jù)類型可劃分為三大類:標(biāo)量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型及特殊數(shù)據(jù)類型,如圖2-2所示。
2.2.1 標(biāo)量數(shù)據(jù)類型標(biāo)量數(shù)據(jù)類型是數(shù)據(jù)類型中的最基本單元,只能存儲(chǔ)一個(gè)數(shù)據(jù)。PHP中的標(biāo)量數(shù)據(jù)類型包括4種,見(jiàn)表2-1。1.布爾型(boolean)布爾型是最簡(jiǎn)單的類型。boolean用于表示邏輯的“真”或“假”,對(duì)應(yīng)布爾型數(shù)據(jù)的兩種取值為“true”或“false”(“true”和“false”的取值不區(qū)分大小寫)。下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-2】程序boolean.php代碼如下:程序運(yùn)行結(jié)果如圖2-3所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型在上述代碼中,使用echo輸出true時(shí),true被自動(dòng)類型轉(zhuǎn)換為整數(shù)1;使用echo輸出false時(shí),false被自動(dòng)類型轉(zhuǎn)換為空字符串。2.整型(integer)整型類型只包含整數(shù)。在32位操作系統(tǒng)中,整型數(shù)據(jù)有效范圍是:?2147483648~+2147483647。整數(shù)可以用十進(jìn)制、八進(jìn)制、十六進(jìn)制表示,使用八進(jìn)制時(shí),整數(shù)前必須加上“0”,如果八進(jìn)制中出現(xiàn)非法數(shù)字8和9,則非法數(shù)字及其后面的數(shù)字被忽略。使用十六進(jìn)制時(shí),整數(shù)前必須加上“0x”。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-3】整數(shù)以不同進(jìn)制形式輸出,程序integer.php代碼如下:程序運(yùn)行結(jié)果如圖2-4所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型在上述代碼中,當(dāng)給定的數(shù)值大于系統(tǒng)環(huán)境所能表示的最大范圍時(shí),會(huì)發(fā)生數(shù)據(jù)溢出。3.浮點(diǎn)型(float)浮點(diǎn)數(shù)據(jù)類型可以用來(lái)存儲(chǔ)數(shù)字,也可以保存小數(shù)。它提供的精度比整數(shù)大得多。在32位的操作系統(tǒng)中,有效的范圍是1.7E?308~1.7E+308。在PHP4.0以前的版本中,浮點(diǎn)型的標(biāo)識(shí)為double,也叫作雙精度浮點(diǎn)數(shù),兩者沒(méi)有區(qū)別。浮點(diǎn)型數(shù)據(jù)默認(rèn)有兩種書寫格式:一種是標(biāo)準(zhǔn)格式:7.1567,?456.9。一種是科學(xué)記數(shù)法格式:858E2,849.72E?5。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-4】浮點(diǎn)數(shù)以不同進(jìn)制形式輸出,程序float.php如下:程序運(yùn)行結(jié)果如圖2-5所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型4.字符串型(string)字符串是連續(xù)的字符序列,由數(shù)字、字母和符號(hào)組成。字符串中的每個(gè)字符只占用一個(gè)字節(jié)。在PHP中,有3種定義字符串的方式,分別是單引號(hào)(')、雙引號(hào)(")和界定符(<<<)。單引號(hào)和雙引號(hào)是經(jīng)常被使用的定義方式,定義格式如下:【例2-5】單、雙引號(hào)字符串對(duì)比輸出,程序compare.php如下:程序運(yùn)行結(jié)果如圖2-6所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型在上面代碼中,用“.”來(lái)連接字符串或字符串變量。單引號(hào)包含的變量按普遍字符輸出,雙引號(hào)包含的變量按其實(shí)際值輸出。使用單引號(hào)時(shí),只要對(duì)單引號(hào)進(jìn)行轉(zhuǎn)義即可;但使用雙引號(hào)時(shí),還要注意“"”、“$”等字符的使用。這些特殊字符都要通過(guò)轉(zhuǎn)義符“\”來(lái)顯示。常用的轉(zhuǎn)義字符見(jiàn)表2-2。使用定界來(lái)定義超長(zhǎng)字符串,語(yǔ)法如下:上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-6】使用定界符來(lái)定義超長(zhǎng)字符串,程序delimiter.php如下:程序運(yùn)行結(jié)果如圖2-7所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型2.2.2 復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型是將多個(gè)簡(jiǎn)單的數(shù)據(jù)類型存儲(chǔ)在一個(gè)變量中。PHP中的復(fù)合數(shù)據(jù)類型包括兩種,見(jiàn)表2-3。1.數(shù)組(array)數(shù)組是把一系列的數(shù)據(jù)集合起來(lái),形成一個(gè)可操作的整體。數(shù)組中的數(shù)據(jù)可以是標(biāo)量數(shù)據(jù)、數(shù)組、對(duì)象、資源等。一般把數(shù)組中的單個(gè)數(shù)據(jù)稱作元素,元素又被分為索引(鍵名)和值兩部分。索引(鍵名)可以是數(shù)字或字符串,值可以是任何數(shù)據(jù)類型。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型(1)數(shù)組的聲明 數(shù)組格式:上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-7】程序array.php代碼如下:程序運(yùn)行結(jié)果如圖2-8所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型(2)相關(guān)函數(shù)數(shù)組中相關(guān)的函數(shù)解釋說(shuō)明見(jiàn)表2-4。2.對(duì)象(object)對(duì)象是存儲(chǔ)數(shù)據(jù)和有關(guān)如何處理數(shù)據(jù)的信息的數(shù)據(jù)類型。在PHP中,必須明確地聲明對(duì)象。聲明對(duì)象的類,使用關(guān)鍵字class。而對(duì)象是類的實(shí)例,是真實(shí)存在的。創(chuàng)建對(duì)象一般使用new關(guān)鍵字來(lái)創(chuàng)建。對(duì)象的創(chuàng)建格式:上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-8】程序object.php代碼如下:程序運(yùn)行結(jié)果如圖2-9所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型2.2.3 特殊數(shù)據(jù)類型PHP還提供了一些特殊用途的數(shù)據(jù)類型,見(jiàn)表2-5。1.資源(resource)資源類型是PHP4引進(jìn)的。在使用資源時(shí),系統(tǒng)會(huì)自動(dòng)啟用垃圾回收機(jī)制,釋放不再使用的資源,避免內(nèi)存消耗殆盡。因此,資源很少需要手工釋放?!纠?-9】程序resource.php代碼如下:程序運(yùn)行結(jié)果如圖2-10所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型2.空值(null)空值表示沒(méi)有為該變量設(shè)置任何值,另外,空值(null)不區(qū)分大小寫,null和NULL的效果是一樣的。被賦予空值的情況有3種:還沒(méi)有賦任何值、被賦值null、被unset()函數(shù)處理過(guò)的變量?!纠?-10】程序null.php代碼如下:程序運(yùn)行結(jié)果如圖2-11所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型2.2.4 數(shù)據(jù)類型轉(zhuǎn)換PHP在變量定義方面比較自由,因此PHP被稱為弱類型語(yǔ)言,也稱為動(dòng)態(tài)語(yǔ)言。PHP數(shù)據(jù)類型轉(zhuǎn)換有3種方式:①自動(dòng)轉(zhuǎn)換。②強(qiáng)制轉(zhuǎn)換。③setType()方法轉(zhuǎn)換。1.自動(dòng)轉(zhuǎn)換定義變量時(shí)不需指定數(shù)據(jù)類型,PHP會(huì)根據(jù)具體引用變量的具體應(yīng)用環(huán)境,將變量轉(zhuǎn)換為合適的數(shù)據(jù)類型。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-11】程序autochangeover.php代碼如下:程序運(yùn)行結(jié)果如圖2-12所示。2.強(qiáng)制轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換允許手動(dòng)將變量的數(shù)據(jù)類型轉(zhuǎn)換成為指定的數(shù)據(jù)類型。轉(zhuǎn)換方法為在變量前面加上一個(gè)小括號(hào),并把目標(biāo)數(shù)據(jù)類型填寫在括號(hào)中來(lái)實(shí)現(xiàn),具體見(jiàn)表2-6。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型【例2-12】程序coercion.php代碼如下:程序運(yùn)行結(jié)果如圖2-13所示。上一頁(yè)下一頁(yè)返回2.2 PHP數(shù)據(jù)類型3.setType()方法轉(zhuǎn)換setType()方法將指定的變量轉(zhuǎn)換成指定的數(shù)據(jù)類型?!纠?-13】程序settype.php代碼如下:程序運(yùn)行結(jié)果如圖2-14所示。上一頁(yè)返回2.3 常量與變量
常量和變量是編程語(yǔ)言的最基本構(gòu)成,代表了運(yùn)算中所需要的各種值。通過(guò)變量和常量,程序才能對(duì)各種值進(jìn)行訪問(wèn)和運(yùn)算。學(xué)習(xí)變量和常量是編程的基礎(chǔ)。2.3.1 常量常量代表程序運(yùn)行中值不發(fā)生變化的一類數(shù)據(jù)。在PHP中,通常使用常量表示只能讀寫而不能改變值的內(nèi)容,如PHP的版本、一個(gè)PHP文件的行數(shù)等。而從是否需要用戶定義來(lái)看,PHP中的常量又可以分為預(yù)定義常量和自定義常量?jī)煞N。下一頁(yè)返回2.3 常量與變量1.自定義常量(1)使用define()函數(shù)聲明常量在PHP中可以用define()函數(shù)來(lái)定義常量,在PHP5.3.0以后,可以使用const關(guān)鍵字在類定義之外定義常量。一個(gè)常量一旦被定義,就不能再改變或者取消定義,其語(yǔ)法如下:例如:define('welcome','helloworld');//定義常量:welcome,值:'helloworld'說(shuō)明:constant_name:必選參數(shù),常量名稱,即標(biāo)識(shí)符。value:必選參數(shù),常量的值。case_sensitive:可選參數(shù),確定常量名稱是否區(qū)分大小寫,默認(rèn)為true,不區(qū)分大小寫;如果設(shè)置為false,則區(qū)分大小寫。上一頁(yè)下一頁(yè)返回2.3 常量與變量(2)使用constant()函數(shù)獲取常量的值常量可賦給某個(gè)變量,通過(guò)變量來(lái)使用常量;也可以直接通過(guò)常量名使用該常量。通過(guò)變量獲取常量值語(yǔ)法如下:例如:echoconstant('welcome');說(shuō)明:參數(shù)const_name為要獲取常量的名稱。如果成功,則返回常量值;失敗,則提示錯(cuò)誤信息“常量沒(méi)有被定義”?!纠?-14】使用define()函數(shù)求圓的面積,程序area.php代碼如下:程序運(yùn)行結(jié)果如圖2-15所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.預(yù)定義常量預(yù)定義常量是PHP系統(tǒng)已經(jīng)事先定義過(guò)的,不需要用戶定義即可使用的一類常量。由于預(yù)定義常量不需要事先定義,所以在編程過(guò)程中使用,可以快速獲取其指代的相關(guān)內(nèi)容,從而大大提高工作效率。其中的內(nèi)核預(yù)定義常量不需要任何設(shè)置即可直接使用,而有些常量則只有在PHP加載相關(guān)的擴(kuò)展庫(kù)后才能使用。預(yù)定義常量的名稱及作用見(jiàn)表2-7。上一頁(yè)下一頁(yè)返回2.3 常量與變量【例2-15】使用預(yù)定義函數(shù)輸出PHP中的一些信息,程序preDefined.php代碼如下:程序運(yùn)行結(jié)果如圖2-16所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.3.2 變量變量是一種在程序運(yùn)行過(guò)程中,其值可以發(fā)生改變的一類數(shù)據(jù)的統(tǒng)稱。變量的值可以改變屬性是其與常量的最本質(zhì)的區(qū)別。變量是PHP編程中最活躍的因素,基本上不論何種操作,都需要有變量的參與。與常量一樣,按照是否需要用戶定義,變量也有自定義變量與預(yù)定義變量之分。1.自定義變量(1)變量的定義和使用在PHP中,所有變量都是用“$”開(kāi)頭的,其語(yǔ)法如下:上一頁(yè)下一頁(yè)返回2.3 常量與變量例如:$x=10;//定義一個(gè)變量x,把10賦給x。說(shuō)明:var_name:變量名。value:變量值。變量名與PHP中其他的標(biāo)簽一樣,遵循相同的規(guī)則。①在PHP中,變量名是區(qū)分大小寫的。②變量名前面必須加符號(hào)$,表示一個(gè)變量。③變量名不能數(shù)字字符開(kāi)頭。自定義變量④變量名可以包含一些擴(kuò)展字符(如重音拉丁字母),但是不能包含非法擴(kuò)展字符(如漢字字符,PHP5支持中文作為變量名,但不提倡)。上一頁(yè)下一頁(yè)返回2.3 常量與變量(2)變量的賦值給變量賦值有兩種方式:傳值賦值和引用賦值。這兩種賦值方式在對(duì)數(shù)據(jù)的處理上有很大的差別。1)傳值賦值這種賦值方式使用“=”直接將一個(gè)變量(或表達(dá)式)的值賦給另一個(gè)變量。使用這種賦值方式,等號(hào)兩邊的變量值互不影響任何一個(gè)變量值的變化都不會(huì)影響到另一個(gè)變量。示例如下:PHP也可以將一個(gè)變量的值賦給另外一個(gè)變量。示例如下:上一頁(yè)下一頁(yè)返回2.3 常量與變量2)引用賦值從PHP4.0開(kāi)始,提供了另外一種給變量賦值的方式——引用賦值,即新變量引用原始變量,改動(dòng)新變量的值將影響原始變量,反之亦然。使用引用賦值的方法是,在將要賦值的原始變量前加一個(gè)“&”符號(hào)?!纠?-16】使用“&”符號(hào),變量$bar引用變量$var。程序assignment.php代碼如下:運(yùn)行結(jié)果如圖2-17所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.預(yù)定義變量預(yù)定義變量是由PHP系統(tǒng)已經(jīng)定義過(guò)的,用戶可以直接使用的一類變量。預(yù)定義變量不需要定義即可直接使用,使用這些變量可以快速實(shí)現(xiàn)對(duì)所需要內(nèi)容的訪問(wèn)。PHP5的常用預(yù)定義變量見(jiàn)表2-8?!纠?-17】通過(guò)服務(wù)器變量獲取有關(guān)信息。程序variable.php代碼如下:運(yùn)行結(jié)果如圖2-18所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.3.3 變量的作用域變量的作用域是指變量在哪些范圍內(nèi)能被使用,在哪些范圍內(nèi)不能被使用,即變量可以被訪問(wèn)的有效范圍。PHP中變量的作用域有全局變量、局部變量和靜態(tài)變量。1.全局變量(globalvariable)全局變量可以在程序的任何地方被訪問(wèn)。要將一個(gè)變量聲明為全局變量,只需要在該變量前面加上關(guān)鍵字“global”(不區(qū)分大小寫,也可以是GLOBAL)即可。使用全局變量,能夠?qū)崿F(xiàn)在函數(shù)內(nèi)部引用函數(shù)外部的參數(shù),或者在函數(shù)外部引用函數(shù)內(nèi)部的參數(shù)。上一頁(yè)下一頁(yè)返回2.3 常量與變量【例2-18】全局變量練習(xí)。程序global.php代碼如下:運(yùn)行結(jié)果如圖2-19所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.局部變量(localvariable)局部變量是聲明在某一函數(shù)體內(nèi)的變量。該變量的作用范圍僅限于其所在的函數(shù)體的內(nèi)部。如果在函數(shù)體的外部引用這個(gè)變量,則系統(tǒng)將會(huì)認(rèn)為引用的是另外一個(gè)變量。【例2-19】局部變量練習(xí)。程序local.php代碼如下:上一頁(yè)下一頁(yè)返回2.3 常量與變量運(yùn)行結(jié)果如圖2-20所示。3.靜態(tài)變量(staticvariable)靜態(tài)變量只存在于函數(shù)作用域內(nèi),也就是說(shuō),靜態(tài)變量只存活在棧中。一般的函數(shù)內(nèi)變量在函數(shù)結(jié)束后會(huì)釋放,比如局部變量,但是靜態(tài)變量卻不會(huì)。就是說(shuō),下次再調(diào)用這個(gè)函數(shù)的時(shí)候,該變量的值會(huì)保留下來(lái)。只要在變量前加上關(guān)鍵字“static”,該變量就成為靜態(tài)變量了?!纠?-20】靜態(tài)變量練習(xí)。程序static.php代碼如下:運(yùn)行結(jié)果如圖2-21所示。上一頁(yè)下一頁(yè)返回2.3 常量與變量2.3.4 可變變量PHP支持一種特殊的變量使用方式,即可變變量,這種變量的名稱是由其他變量的值決定的,因此這個(gè)變量的名稱是可變的。聲明一個(gè)可變變量的方法為在變量名稱前面加兩個(gè)“$”符號(hào)。【例2-21】可變變量練習(xí)。程序mutable.php代碼如下:運(yùn)行結(jié)果如圖2-22所示。上一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式
運(yùn)算符是用來(lái)對(duì)數(shù)值和變量進(jìn)行某種操作運(yùn)算的符號(hào)。一般地說(shuō),PHP運(yùn)算符可以根據(jù)操作數(shù)的個(gè)數(shù)分為一元運(yùn)算符、二元運(yùn)算符、三元運(yùn)算符。一元運(yùn)算符,例如!(取反運(yùn)算符)或++(自加運(yùn)算符),PHP支持的大多數(shù)運(yùn)算符都是這種二元運(yùn)算符,例如+、-、*、/等算術(shù)運(yùn)算符,而三元運(yùn)算符只有一個(gè)(?:)。另外,按運(yùn)算符的功能,可以分為算術(shù)運(yùn)算符、字符串運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、遞增或遞減運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符和條件運(yùn)算符。2.4.1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符就是用來(lái)處理四則運(yùn)算的符號(hào),這是最簡(jiǎn)單,也最常用的符號(hào),尤其是數(shù)字的處理,幾乎都會(huì)使用到算術(shù)運(yùn)算符號(hào)。常用的算術(shù)運(yùn)算符及其說(shuō)明見(jiàn)表2-9。下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式【例2-22】算術(shù)運(yùn)算符練習(xí)。程序arithmetic.php代碼如下:運(yùn)行結(jié)果如圖2-23所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.2 字符串運(yùn)算符字符串運(yùn)算符主要用于連接兩個(gè)字符串,PHP有兩個(gè)字符串運(yùn)算符:“.”和“.=”。“.”,返回左、右參數(shù)連接后的字符串;“.=”,將右邊參數(shù)附加到左邊參數(shù)后面,它可看成賦值運(yùn)算符?!纠?-23】字符串運(yùn)算符練習(xí)。程序string.php代碼如下:運(yùn)行結(jié)果如圖2-24所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.3 賦值運(yùn)算符賦值運(yùn)算符的作用是將右邊的值賦給左邊的變量,最基本的賦值運(yùn)算符是“=”。常用的賦值運(yùn)算符及其說(shuō)明見(jiàn)表2-10?!纠?-24】賦值運(yùn)算符練習(xí)。程序assignment1.php代碼如下:運(yùn)行結(jié)果如圖2-25所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.4 位運(yùn)算符位運(yùn)算符可以操作整型和字符串型兩種類型數(shù)據(jù)。它操作整型數(shù)的指定位置位,如果左、右參數(shù)都是字符串,則位運(yùn)算符將操作字符的ASCII值。常用的位運(yùn)算符及其說(shuō)明見(jiàn)表2-11。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式【例2-25】位運(yùn)算符練習(xí)。程序bitwise.php代碼如下:運(yùn)行結(jié)果如圖2-26所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.5 遞增或遞減運(yùn)算符PHP支持C語(yǔ)言風(fēng)格的遞增與遞減運(yùn)算符。PHP的遞增/遞減運(yùn)算符主要是對(duì)整型數(shù)據(jù)進(jìn)行操作,同時(shí)對(duì)字符也有效。這些運(yùn)算符是前加、后加、前減和后減。前加是在變量前有兩個(gè)“+”號(hào),如“++$a”,表示$a的值先加1,然后返回$a。后加的“+”在變量后面,如“$a++”,表示先返回$a,然后$a的值加1。前減和后減與加法類似。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式【例2-26】遞增、遞減運(yùn)算符練習(xí)。程序incrementa.php代碼如下:運(yùn)行結(jié)果如圖2-27所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.6 比較運(yùn)算符比較運(yùn)算符用于對(duì)兩個(gè)值進(jìn)行比較。不同類型的值也可以進(jìn)行比較,如果比較的結(jié)果為真,則返回True,否則返回False。常用的比較運(yùn)算符及其說(shuō)明見(jiàn)表2-12?!纠?-27】比較運(yùn)算符練習(xí)。程序compare1.php代碼如下:運(yùn)行結(jié)果如圖2-28所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.7 邏輯運(yùn)算符邏輯運(yùn)算符可以操作布爾型數(shù)據(jù),PHP中的邏輯運(yùn)算符有6種,見(jiàn)表2-13。【例2-28】邏輯運(yùn)算符練習(xí)。程序logic.php代碼如下:運(yùn)行結(jié)果如圖2-29所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.8 條件運(yùn)算符PHP還提供了一種三元運(yùn)算符(?:)。它與C語(yǔ)言中的相同,語(yǔ)法格式如下:condition是需要判斷的條件,當(dāng)條件為真時(shí),返回冒號(hào)前面的值,否則返回冒號(hào)后面的值。【例2-29】條件運(yùn)算符練習(xí)。程序condition.php代碼如下:運(yùn)行結(jié)果如圖2-30所示。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.9 運(yùn)算符優(yōu)先級(jí)一般來(lái)說(shuō),運(yùn)算符具有一組優(yōu)先級(jí),也就是它們的執(zhí)行順序。運(yùn)算符還有結(jié)合性,也就是同一優(yōu)先級(jí)的運(yùn)算符的執(zhí)行順序,這種順序通常是從左到右(簡(jiǎn)稱左)、從右到左(簡(jiǎn)稱右)或者非結(jié)合。表2-14從高到低列出了PHP運(yùn)算符的優(yōu)先級(jí),同一行中的運(yùn)算符具有相同優(yōu)先級(jí),此時(shí)它們的結(jié)合性決定了求值順序。對(duì)具有相同優(yōu)先級(jí)的運(yùn)算符,左結(jié)合方向意味著將從左向右求值,右結(jié)合方向則反之。對(duì)于無(wú)結(jié)合方向,具有相同優(yōu)先級(jí)的運(yùn)算符,該運(yùn)算符有可能無(wú)法與其自身結(jié)合。舉例說(shuō),在PHP中,1<2>1是一個(gè)非法語(yǔ)句,而1<=1==1則不是。因?yàn)?lt;=比==優(yōu)先級(jí)高。例如:上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式所以,在讀者非常清楚PHP運(yùn)算優(yōu)先級(jí)的前提下,書寫運(yùn)算符的時(shí)候,還是要以圓括號(hào)來(lái)標(biāo)記優(yōu)先級(jí),這樣可讀性強(qiáng),也是一個(gè)良好的編程習(xí)慣。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式2.4.10 表達(dá)式表達(dá)式是PHP最重要的基石。在PHP中,幾乎所寫的任何東西都是一個(gè)表達(dá)式。簡(jiǎn)單卻最精確的定義表達(dá)式就是“任何有值的東西”。最基本的表達(dá)式就是常量和變量;一般的表達(dá)式大部分都是由變量和運(yùn)算符組成的,如$a=5,就是表示將值5賦給變量$a;再?gòu)?fù)雜一點(diǎn)的表達(dá)式就是函數(shù)。例如:上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式上面就是一個(gè)表達(dá)式。當(dāng)$a的值大于$b時(shí),該表達(dá)式值為TRUE,否則為FALSE。表達(dá)式是通過(guò)具體的代碼來(lái)實(shí)現(xiàn)的。我們經(jīng)常通過(guò)一個(gè)表達(dá)式判斷一個(gè)值(包括具體的數(shù)值和布爾值)來(lái)做下一步的操作。就像下面的例子一樣。上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式上面的例子使用了if判斷語(yǔ)句,判斷條件就是括號(hào)里面“$a<$b”表達(dá)式,如果$a<$b成立,就會(huì)輸出“a<b”,否則輸出“a>b”。這只是一個(gè)簡(jiǎn)單的表達(dá)式,在實(shí)際開(kāi)發(fā)中會(huì)復(fù)雜很多。PHP中使用分號(hào)“;”來(lái)區(qū)分表達(dá)式和語(yǔ)句??梢詫⒈磉_(dá)式包括在括號(hào)里面,就像上面的例子一樣??梢院?jiǎn)單地理解為:一個(gè)表達(dá)式加一個(gè)分號(hào),就構(gòu)成了一條PHP語(yǔ)句。例如:上一頁(yè)下一頁(yè)返回2.4 PHP運(yùn)算符及表達(dá)式上面的例子中,$a=100,$b=200,是表達(dá)式,if括號(hào)里面的“$a<$b”也是表達(dá)式。最后要說(shuō)的是,表達(dá)式廣泛存在于我們的PHP程序設(shè)計(jì)中。上一頁(yè)返回2.5 PHP數(shù)據(jù)的輸出在本教程中,幾乎在每個(gè)例子中都會(huì)用到輸出語(yǔ)句,常用的輸出語(yǔ)句有echo()、print()、print_r()和var_dump()。下面分別進(jìn)行介紹。2.5.1 常用輸出語(yǔ)句1.echo()輸出一個(gè)或多個(gè)字符串。實(shí)際上它并不是一個(gè)函數(shù),所以不必對(duì)它使用括號(hào),直接用echo就行。然而,如果希望向echo()傳遞一個(gè)以上的參數(shù),使用括號(hào)將會(huì)生成解析錯(cuò)誤。echo()函數(shù)比print()速度稍快一點(diǎn)。echo輸出多個(gè)字符串時(shí),用逗號(hào)隔開(kāi)。2.print()輸出一個(gè)或多個(gè)字符串。同echo一樣,實(shí)際上它并不是一個(gè)函數(shù)。print有返回值,而echo沒(méi)有,當(dāng)其執(zhí)行失敗時(shí),返回false,成功則返回true,速度比echo稍慢。只能打印出簡(jiǎn)單類型變量的值,如:int、string。下一頁(yè)返回2.5 PHP數(shù)據(jù)的輸出3.print_r()可以把字符串和數(shù)字簡(jiǎn)單地打印出來(lái),而數(shù)組則以括起來(lái)的鍵和值的列表形式顯示,并以array開(kāi)頭。但print_r()輸出布爾值和NUL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 給水設(shè)施運(yùn)行監(jiān)測(cè)方案
- 建筑裝飾風(fēng)格分類與設(shè)計(jì)
- 市政管網(wǎng)運(yùn)營(yíng)穩(wěn)定性分析
- 地下管線施工安全管理方案
- 2026貴州博通橡塑制品有限公司招聘6人備考題庫(kù)附答案
- 施工用機(jī)械設(shè)備管理方案
- 2025年礦山安全培訓(xùn)教程
- 公路邊坡綠化養(yǎng)護(hù)技術(shù)
- 燃?xì)庠O(shè)備操作培訓(xùn)課程計(jì)劃
- 公路施工安全教育培訓(xùn)
- 2024年國(guó)網(wǎng)35條嚴(yán)重違章及其釋義解讀-知識(shí)培訓(xùn)
- 部編版八年級(jí)語(yǔ)文上冊(cè)課外文言文閱讀訓(xùn)練5篇()【含答案及譯文】
- 高三英語(yǔ)一輪復(fù)習(xí)人教版(2019)全七冊(cè)單元寫作主題匯 總目錄清單
- 工業(yè)區(qū)物業(yè)服務(wù)手冊(cè)
- 大學(xué)基礎(chǔ)課《大學(xué)物理(一)》期末考試試題-含答案
- 道德與法治五年級(jí)上冊(cè)練習(xí)測(cè)試題帶答案(模擬題)
- 招標(biāo)代理機(jī)構(gòu)內(nèi)部管理制度
- 2024新能源集控中心儲(chǔ)能電站接入技術(shù)方案
- 生產(chǎn)拉絲部門工作總結(jié)
- 農(nóng)村買墓地合同的范本
- 零售行業(yè)的店面管理培訓(xùn)資料
評(píng)論
0/150
提交評(píng)論