|
簡介: PHP,一個嵌套的縮寫名稱,是英文超級文本預(yù)處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種HTML內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用。PHP 獨特的語法混合了C、Java、Perl 以及PHP 自創(chuàng)新的語法。它可以比CGI 或者Perl 更快速的執(zhí)行動態(tài)網(wǎng)頁。 PHP語法與C最大的不同之處在于PHP重實用,而C重原理。PHP的創(chuàng)始人是為了更新自己的主頁而設(shè)計PHP的,不是像C的創(chuàng)始人那樣為了開發(fā)操作系統(tǒng),這是兩者語法風(fēng)格不同的根本原因。 重點: PHP的基本語法:數(shù)據(jù)類型、常量、變量、運算符與表達式、流程控制、函數(shù)、數(shù)組。 1、PHP的數(shù)據(jù)類型 不管常量還是變量都不需要先定義后使用(類中的變量除外),PHP根據(jù)第一次賦值的情況自動決定數(shù)據(jù)類型。 PHP的基本變量類型有整型(Integer)、浮點型(Float)、字符串(String)(這是C 沒有的,但C++有String類)以及布爾型(Boolean)(C沒有,但是C++有)。 構(gòu)造類型有數(shù)組和對象。 此外還有兩個特殊類型:空值(NULL)(C也有)和資源(Resource)。 2、定義常量 用define函數(shù)來定義 define函數(shù)原型:bool define(string name,value,[,bool case_insensitive])第三個參數(shù)如果是TRUE,則表示常量名是大小寫不敏感的,反之就是敏感的,默認是敏感的。 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php define(“C1”,”Hello PHP World!”); echo C1; ?> 運行結(jié)果:輸出常量C1的值(Hello PHP World!)。 內(nèi)容解釋和補充: ① <?php和?>是PHP代碼的定界符,將PHP代碼同HTML代碼區(qū)分出來。 ② PHP代碼的語句以分號結(jié)束 ③ PHP支持C和Unix風(fēng)格的注釋方式: /* C風(fēng)格多行注釋 */ // C風(fēng)格單行注釋 # Unix風(fēng)格單行注釋 ④ echo就相當(dāng)于C的printf或C++的cout ⑤ PHP也支持‘
’作為換行符,但是它的含義僅僅相當(dāng)于在HTML里敲個回車, 瀏覽器里看還是在一行上的。 3、定義變量 變量名前都要帶個$ 不用擔(dān)心自定義變量名同PHP關(guān)鍵字沖突,可以定義一個變量叫$if,$for等。但不推薦這么做。 變量名大小寫敏感,并且命名方式遵循C標識符的命名原則。 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $var1=100; $var2=&$var1; $var2=200; echo $var1.”<br>”; echo $var2; ?> 運行結(jié)果:輸出兩個200,分別是$var1和 $var2的值。 內(nèi)容解釋和補充: ①輸出的時候為了清楚加了個換行符,PHP里句點(.)是字符串的連接符。 如果你在把上面的echo語句寫成: echo “The value of $var1 is ”.$var1.”<br>”; 那么你得到的輸出將是:The value of 200 is 200 ② PHP在使用雙引號作為字符串的定界符時,會自動把變量名替換成相應(yīng)的值。 如果你想保持變量名原樣輸出,那么可以用單引號做字符串的定界符。 ③語句$var2=&$var1;中的&符號的含義是將變量名$var2也指向$var1所在的存 儲空間。$var2并不是一個新變量,而是$var1的另一個名字,它們對應(yīng)的是同一段內(nèi)存空間,不管使用誰都是訪問的同一個變量,$var2就叫做對$var1的引用。 變量作用域 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $a=1; function func() { echo "The value of a is:".$a; } func(); ?> 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $a="newname"; $$a="content"; //newname本是$a的值,但是$$a的含義是以$a的值為名的變 echo $newname; //$$a等價于 $newname echo $a; ?> 4、運算符和表達式 PHP在運算符和表達式方面和C極其類似,有算術(shù)、邏輯、關(guān)系、位運算符及相應(yīng)的表達式,也有條件運算符(:?)及其表達式,同樣還是我們開始提到的那個思想,實用為上,很多限制被取消了,相對較寬松。 【例】 復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $a="1"; $b=1; if ($a==$b) echo "Equal!"; else echo "Not Euqal!"; ?> 運行結(jié)果:“Equal!” 內(nèi)容解釋和補充: ① PHP將字符串轉(zhuǎn)換為數(shù)值時會自動截取全部它能理解為數(shù)值的部分 ②允許跨越數(shù)據(jù)類型的比較 ③想嚴格比較兩個變量,PHP提供了一對特殊的運算符:全等(===)和非全等(!==)。只有當(dāng)值相當(dāng)且數(shù)據(jù)類型相同時,才叫全等,兩者有一不符,則非全等。此時,即使1與 1.0也是非全等的。 ④運算符有優(yōu)先級和結(jié)合性的概念 4、流程控制 1)switch case語句中case后面可以寫任意表達式。C只能是常量表達式。 2)if elseif else結(jié)構(gòu)中間的else和if可以連在一起寫。 3)PHP有一個獨特的循環(huán)結(jié)構(gòu)foreach,是專門為數(shù)組遍歷準備的。 6、函數(shù) 函數(shù)定義的一般形式是: function 函數(shù)名($參數(shù)1,$參數(shù)2,……,$參數(shù)n) { 函數(shù)體 return 語句返回值 } 函數(shù)可以嵌套定義。 引用 引用就是給變量取個小名(專業(yè)的話叫別名),即兩個或多個變量名對應(yīng)同一變量存儲空間。 這一概念用在函數(shù)參數(shù)上特別有用,我們知道實參與形參的結(jié)合是單向值傳遞,即實參將它的值復(fù)制給形參,而形參變量在函數(shù)體中可能被改變,但由于形參變量會在函數(shù)返回時被撤銷,所以形參不能將改變了的值傳回給實參。這一機制保證了函數(shù)只能有一個返回值。 當(dāng)需要返回多個值的時候,我們可以使用引用做形參,這相當(dāng)于把實參的地址傳遞給函數(shù),函數(shù)對這個地址上的數(shù)據(jù)進行操作,當(dāng)然就可以把改變保留下來。引用的概念是C++里增加的,PHP的函數(shù)也支持引用做形參。只要把C++里引用做參數(shù)的概念理解清楚了,在PHP 里是完全一樣的。 PHP有巨大的函數(shù)庫,比如關(guān)于時間的函數(shù)就有一大堆。 7、數(shù)組 PHP的數(shù)組很像數(shù)學(xué)概念中的“集合”。 PHP的數(shù)組就是把一堆數(shù)據(jù)(什么類型都行)放在一起。很像C的結(jié)構(gòu)體,比結(jié)構(gòu)體還靈活,它可以自動增減數(shù)據(jù)元素。 PHP數(shù)組的定義: 通過array函數(shù)實現(xiàn),一般形式為: $數(shù)組名=array(鍵名=>數(shù)據(jù), 鍵名=>數(shù)據(jù), ……, 鍵名=>數(shù)據(jù)); 這里的鍵名在C中叫下標,在PHP里鍵名非常人性化。對應(yīng)的數(shù)據(jù)如果存儲的是姓名,鍵名就可以叫name,是成績,就可以叫score,當(dāng)然你如果想用整數(shù)也可以,隨你的便。 如果你懶得在定義數(shù)組時指定鍵名,可以這樣寫: $數(shù)組名=array(數(shù)據(jù)1, 數(shù)據(jù)2, ……, 數(shù)據(jù)n); 這時候PHP會按照C語言的方式按數(shù)據(jù)的先后順序從0開始自動賦予整型鍵名。 PHP提供了一個特別方便的顯示數(shù)組全部元素的函數(shù)print_r 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $arr1=array(100,200,300,400); $arr2=array("num"=>100,"name"=>"Liuxy","score"=>98); print_r($arr1); echo "<br>"; print_r($arr2); ?> 輸出結(jié)果: Array ( [0] => 100 [1] => 200 [2] => 300 [3] => 400 ) Array ( [num] => 100 [name] => Liuxy [score] => 98 ) 定義二維數(shù)組。可以嵌套地使用array函數(shù)。 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: $arr=array( "row1"=>array(100,200,300,400), "row2"=>array("num"=>100,"name"=>"Liuxy","score"=>98) ); PHP數(shù)組元素的訪問,是數(shù)組名[鍵名]的形式。 PHP數(shù)組的遍歷: 通過foreach語句實現(xiàn),foreach語句格式如下: foreach (數(shù)組名 as 變量名) 數(shù)據(jù)元素處理語句; 翻譯成C語言就是: for (i=0;i<n; i++){變量名=a;其他包含“變量名”的處理語句} foreach等價于前面的 for (i=0;i<n; i++) as等價于“變量名”與a之間的等號 【例】 復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $arr=array(1,2,3,4,5,6); foreach ($arr as $value ) echo ”$value<br>”; ?> 輸出結(jié)果:只有數(shù)值。 如果還想把對應(yīng)的鍵名也同時輸出出來,可以用這樣的形式: foreach ($arr as $key=>$value) echo “鍵名為$key的元素值為$value”; 遍歷二維數(shù)組:在C中我們一般用二重for循環(huán),PHP中的foreach也可以嵌套使用。 【例】復(fù)制PHP內(nèi)容到剪貼板 PHP代碼: <?php $arr=array( "row1"=>array(100,200,300,400), "row2"=>array("num"=>100,"name"=>"Liuxy","score"=>98) ); foreach ($arr as $key=>$value) { echo "$key=>$value"; echo "<br>"; foreach ($value as $k=>$var) echo "$k=>$var<br>"; } ?> PHP的數(shù)組元素是可以動態(tài)增長的。 為數(shù)組增加一個元素同訪問數(shù)組元素一樣,只不過鍵名是新的或者為空,如$arr[new]=3; 或$arr[]=3,這樣做的結(jié)果是PHP為數(shù)組$arr增加一個鍵名為new的元素其值為3,若鍵名為空,則以當(dāng)前整型鍵名的最大值加1作為默認的鍵名分配給新的元素。 要想刪除一個數(shù)組元素,可以使用unset函數(shù)。 如刪除上面新增的那個元素,可以寫成unset($arr[new])。也可以使用unset函數(shù)刪除整個數(shù)組結(jié)構(gòu),如unset($arr)。 提醒大家的是,PHP為數(shù)組的排序、查找、合并、拆分提供了大量函數(shù),用到這些基本算法時,不用再去翻數(shù)據(jù)結(jié)構(gòu)課本了。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|