從今天開始,,我們將進(jìn)行一周的PHP學(xué)習(xí),,雖然之前沒有一點點PHP基礎(chǔ),但相信通過這一周的學(xué)習(xí)我們將會掌握PHP在服務(wù)器端主要的開發(fā)技能,。 2017年06月08日16時39分 新書終于來了,先看前言,。本書提供PHP從入門到高手的各類知識,共4篇: 第一篇:基礎(chǔ)知識,。介紹PHP及其環(huán)境搭建、開發(fā)工具,,語言基礎(chǔ),、流程控制、字符串操作,、數(shù)組、與WEB交互,、與JavaScript交互、日期,、時間等內(nèi)容,,為以后奠定堅實基礎(chǔ)。 第二篇:核心技術(shù),。介紹Cookie,、Session、圖形圖像處理,、文件系統(tǒng),、面向?qū)ο?、加密技術(shù)、操作MySQL,、phpMyAdmin圖形化管理工具,、PDO數(shù)據(jù)庫抽象層、ThinkPHP框架等內(nèi)容,。學(xué)完后能開發(fā)數(shù)據(jù)庫應(yīng)用程序和一些中小型熱點模塊,。 第三篇:高級應(yīng)用。介紹Smarty模板技術(shù),、與XML,、與Ajax等內(nèi)容。學(xué)完后可開發(fā)網(wǎng)絡(luò)程序,。 第四篇:項目實戰(zhàn)。第一個項目通過Smarty模板技術(shù),、PDO數(shù)據(jù)庫抽象層,、Ajax等主流技術(shù)實現(xiàn)一個大型完整的商務(wù)平臺,同時運用軟件工程設(shè)計思想,,讓讀者學(xué)習(xí)如何進(jìn)行網(wǎng)站實踐開發(fā),。第二個項目通過ThinkPHP框架開發(fā)一個導(dǎo)航網(wǎng),該項目運用軟工設(shè)計思想中最流行的MVC設(shè)計觀念,,讀者學(xué)習(xí)后可了解網(wǎng)站導(dǎo)航開發(fā)流程,,掌握ThinkPHP框架開發(fā)網(wǎng)站流程及常用技術(shù)。 第一章:初識PHP PHP是一種服務(wù)器端HTML嵌入式腳本描述語言,,最強大和重要的特性是跨平臺和面向?qū)ο?。本章簡單介紹PHP和PHP5新特性、PHP發(fā)展趨勢及學(xué)習(xí)方法,,使讀者對PHP有一個整體了解,。 1、什么是PHP:PHP獨特的語法混合了C,、JAVA,、PERL特點,尤其適合WEB開發(fā),。 2,、語言優(yōu)勢:安全性高,是開源軟件,,每個都可以看到源代碼,,代碼與Apache編譯在一起的方式可以讓它具有靈活的安全設(shè)定,具有公認(rèn)的安全性能,;跨平臺性,,支持Apache,、Nginx、IIS等多種WEB服務(wù)器,;支持廣泛數(shù)據(jù)庫,,與MYSQL是目前最佳組合,組合可跨平臺運行,;易學(xué)性,;執(zhí)行速度快;免費,;模板化,,實現(xiàn)程序邏輯與界面分離;支持面向?qū)ο笈c過程,,并可向下兼容;內(nèi)嵌Zend加速引擎,,性能穩(wěn)快,。 3、PHP5新特性:構(gòu)造函數(shù),、析構(gòu)函數(shù),;對象的引用;對象的克??;對象中有三種模式public\protected\private;接口interface,;抽象類,;_call;_set和_get,;靜態(tài)成員,。 4、如何學(xué)好: 5,、學(xué)習(xí)資源: 5.1,、常用開發(fā)工具:Dreamweaver\ZendStudio\PhpStorm\Notepad++\EditPlus等。 5.2,、下載PHP用戶手冊: 5.3,、常用網(wǎng)上資源:官網(wǎng)、技術(shù)論壇 第二章:PHP環(huán)境搭建和開發(fā)工具 本書以WampServer集成環(huán)境介紹PHP服務(wù)器的安裝,、配置,。 我的機器安裝失敗,先不管了,,往下學(xué),。 第三章:PHP語言基礎(chǔ) 1,、標(biāo)記風(fēng)格 XML風(fēng)格 <?php echo "這是一個PHP"; ?> 腳本風(fēng)格 <script language="php"> echo '...........'; </script> 簡短風(fēng)格 <? echo '............'; ?> ASP風(fēng)格 <% echo '...........'; %> 若需使用簡短和ASP風(fēng)格,需在php.ini中配置,,打開該文件將short_open_tag和asp_tags設(shè)置為On,,重啟Apache服務(wù)器即可。通常使用XML風(fēng)格,。 2,、注釋應(yīng)用 3、PHP數(shù)據(jù)類型 支持8種原始類型,,包括4種標(biāo)量類型:boolean,、integer、float/double,、string,;2種復(fù)合類型:array、object,;2種特殊類型:resource,、null。 說明:PHP中變量的類型通常不是由程序員設(shè)定的,,是PHP根據(jù)該變量使用的上下文在運行時決定的,。 3.1標(biāo)量數(shù)據(jù)類型:它是數(shù)據(jù)結(jié)構(gòu)中最基本的單元,只能存儲一個數(shù)據(jù),。包括4種: boolean,、string、integer,、float 3.11,、布爾型boolean:PHP中不只是只有FALSE才是假,特殊情況下0,、00,、“0”、空白字符串“”,、只聲明但沒有賦值的數(shù)組等也認(rèn)為是false,。 PHP中美元符號$是變量的標(biāo)識符,所有變量都以$開頭,,無論是聲明變量還是調(diào)用,。 3.12、字符串型string:由數(shù)字,、字母和符號組成,,每個字符占一個字節(jié)。PHP中有三種字符串字義方式,,分別是單引號,、雙引號,、定界符(<<<)。 單引號: <?php $a='this is string'; ?> 雙引號: <?php $a="this is string"; ?> 兩者不同之處:雙引號中的變量會自動被替換成實際數(shù)值,,單引號中的變量則按普通字符串輸出,。 定界符:不推薦使用,沒什么毛意思,。 實例: 從上例可以看出什么,?我是什么也沒看出來,實在看不出來單引號與雙引號的區(qū)別,。但是本書建議在定義簡單的字符串時,,使用單引號是一個更加合理的方式。原因是使用雙引號時,,PHP將花費一些時間來處理字符串的轉(zhuǎn)義和變量的解析,。 3.13、整型integer:數(shù)據(jù)類型只包含整數(shù),,有效范圍-2147483648至+2147483647,。若給定數(shù)值超過范圍按float型處理,這種情況叫整數(shù)溢出,。同樣兩數(shù)相加超過范圍自動返回float型。 3.14,、浮點型float:用來儲存數(shù)字,,可包存小數(shù),有效范圍1.7E-308至17E+308,,4.0版本前,浮點型標(biāo)識為double,,兩者無區(qū)別,。圓周率寫法實例: 哎,后兩種寫法出錯,,這本書怎么回事,。上例中可以看出 . 符號是連接字符串與變量的作用。 書中有段話很有意思:“注意:浮點型的數(shù)值只是一個近似值,,所以要盡量避免用兩個浮點型數(shù)值比大小,,結(jié)果往往是不準(zhǔn)確的?!?/div> 3.2復(fù)合數(shù)據(jù)類型:數(shù)組array和對象object 3.21數(shù)組array:一組數(shù)據(jù)的集合,,把一系列數(shù)據(jù)組織起來形成一個可操作的整體??梢园?biāo)量數(shù)據(jù),、數(shù)組,、對象、資源及PHP中支持的其它語法結(jié)構(gòu)等,。數(shù)組中的每個數(shù)據(jù)稱為一個元素,,元素包括索引(鍵名)和值兩部分,。元素的索引可由數(shù)字或字符串組成,,值可以是多種數(shù)據(jù)類型。格式如下: $array=array('value1','value2'...); 或 $array[key]='value'; 或 $array=array(key1=>value1,key2=>value2...); 來個實例試一下: 聲明數(shù)組后,,數(shù)組中的元素還可自由更改,。只要給數(shù)組賦值,數(shù)組會自動增加長度,。 3.22對象object:編程語言所用到的方法有兩種,面向過程和面向?qū)ο?,在PHP中可自由使用這兩種方法。 3.3特殊數(shù)據(jù)類型: 3.31資源resource:資源類型是PHP4引進(jìn)的,,在使用資源時,,系統(tǒng)會自動啟用垃圾回收機制,,釋放不再使用的資源,,避免內(nèi)存消耗殆盡。因此資源很少需要手工釋放,。 3.32空值null:表示沒有為該變量設(shè)置任何值。不分大小寫null與NULL是一樣的,,實例代碼: 3.4數(shù)據(jù)類型轉(zhuǎn)換:雖然PHP是弱類型語言,,但有時也會用到類型轉(zhuǎn)換。PHP類型轉(zhuǎn)換與C、JAVA一樣,,只需在變量前加上用括號括起來的類型名稱即可。有幾點需要注意:轉(zhuǎn)換成boolean類型時,,null,、0和未賦值的變量或數(shù)組會被轉(zhuǎn)換成false,其它為true,;轉(zhuǎn)換成整型時,,false轉(zhuǎn)換為0,true轉(zhuǎn)換為1,,浮點型的小數(shù)被舍去,,字符型如果以數(shù)字開差就載取到非數(shù)字位,否則輸出0,。 類型轉(zhuǎn)換有一個函數(shù)settype($string,數(shù)據(jù)類型),,將指定變量轉(zhuǎn)換成指定數(shù)據(jù)類型,同時返回值,,成功返回true,,否則false??磦€實例,,學(xué)習(xí)的過程中,不親自動手寫寫真的不行,。 3.5檢測數(shù)據(jù)類型:PHP內(nèi)置了檢測數(shù)據(jù)類型的系列函數(shù),可對不同類型的數(shù)據(jù)進(jìn)行檢測,,判斷是否屬于某個類型,,屬于返回TRUE,否則返回FALSE,。8個函數(shù),,選is_numeric()試一下吧: 4、聲明和使用常量:常量是值不變的量,,常量值被定義后,,在腳本的任何地方都不能改變。聲明常量不能以數(shù)字作為首字母出現(xiàn)。PHP中使用define()函數(shù)來定義常量,,語法如下: define(string name,value,是否區(qū)分大小寫); 第一個參數(shù)是常量名稱,,必選,可以是字符串或定義字符串的變量,;第二個參數(shù)是常量值,,必選;第三個參數(shù)可選,,true表示不敏感,。要判斷一個常量是否已定義,可使用defined()函數(shù),,語法如下: bool defined(name); 定義返回true,,未定義返回false。 看實例: 使用defined()函數(shù)時,參數(shù)常量值記得加引號,。是常量返回1,,不是常量不返回值。 4.2預(yù)定義常量:PHP中可以使用預(yù)定義常量獲取PHP中的信息,,參考相關(guān)資料,,不作介紹了。上個實例: 5,、PHP變量:PHP4開始引入了“引用賦值”,。敲個實例吧: <?php $a='hello php'; $b=& $a; $a='hi php'; echo $a; echo $b; ?> 上面代碼輸出$a和$b的值是一樣的。 5.2變量作用域:分三種,,局部變量,、全部變量、靜態(tài)變量,。這里要說的是全局變量,,跟其它語言不太一樣,全局變量在函數(shù)內(nèi)部使用時要使用global關(guān)鍵字聲明,。 <?php $a='php'; function cc(){ $b='hello'; echo $b; global $a; echo $a; } ?> 再上個靜態(tài)變量的例子: 上例看出,,靜態(tài)變量的初始化只在第一次時被執(zhí)行,以后就不再對其進(jìn)行初始化操作了,。 5.3可變變量:這個東東以后感覺有用了再來說 5.4PHP預(yù)定義變量:PHP提供了一些很實用的預(yù)定義變量,,可通過這些獲取用戶會話、操作系統(tǒng)和本地系統(tǒng)的環(huán)境信息,。常用的可參考相關(guān)資料 6,、PHP的運算符:包括算術(shù)運算符、字符串運算符,、賦值運算符,、位運算符、邏輯運算符、比較運算符,、遞增,、增減運算符和條件運算符。本節(jié)只介紹一些常用的: 6.1算術(shù)運算符:+-*/% 6.2字符串運算符:只有一個英文句號,,表示將兩個字符連接起來,。 6.3賦值運算符:有7個:賦值=,加+=,,減-=,,乘*=,除/=,,連接字符.=,,取余數(shù)%= 6.4遞增、遞減運算符: 6.5位運算符: 6.6邏輯運算符:4個,。邏輯與(&&或and),,邏輯或(||或or),邏輯非(!),,邏輯異或(xor,,即當(dāng)前、后一真一假時返回true),; 6.7比較運算符:多了===,、!==,,恒等和非恒等,。 6.8條件運算符:?: 也稱三目運算符,實例如下: 6.9運算符的優(yōu)先級:遵循原則:優(yōu)先高的運算先執(zhí)行,,優(yōu)先級低的操作后執(zhí)行,,同級操作按照從左到右的順序執(zhí)行。 7,、PHP的表達(dá)式: 8,、PHP函數(shù):函數(shù)就是將一些能夠重復(fù)使用的代碼寫到一個獨立的代碼塊中,在需要時單獨調(diào)用,。語法格式為: function fun_name($str1,$str2...){ fun_body; } 8.1定義和調(diào)用函數(shù) 8.2函數(shù)間傳遞參數(shù):傳遞方式有3種,,按值傳遞,、按引用傳遞和默認(rèn)參數(shù),。 按值傳遞方式:即將實參復(fù)制到對應(yīng)的形參中,在函數(shù)內(nèi)部針對形參進(jìn)行,,操作的結(jié)果不影響實參,。這個很常見,不舉例了。 按引用傳遞方式:引用傳遞是將實參的內(nèi)存地址傳遞到形象中,,這樣在函數(shù)內(nèi)部對形象的操作將影響到實參的值,。引用傳遞方式就是傳值時在原基礎(chǔ)上加&即可。來個例子: 默認(rèn)參數(shù)方式:即可選參數(shù),。需要注意的是當(dāng)有多個參數(shù)時,,可選的參數(shù)必須放在右邊,否則容易出錯,。實例: 書上有個說明:PHP5開始,,默認(rèn)參數(shù)也可以通過引用傳遞。意思就是:如果默認(rèn)參數(shù)是一個引用,,那么有實參的話,,默認(rèn)的形參值跟隨實參改變。 8.3從函數(shù)中返回值:通過返回值的方式是使用關(guān)鍵字 return,。但如果是在全局作用域內(nèi)使用return,,那么將終止腳本的執(zhí)行。 8.4變量函數(shù):意義不大,,不說了,。 8.5編碼規(guī)范:這個也不多說 9、PHP書寫規(guī)則: 9.3命名規(guī)則: 類命名:1,、使用大字母作為單詞分隔,;2、名字的首字母使用大寫,;3,、不使用下劃線; 類屬性命名:1,、屬性名應(yīng)以字母m為前綴,;2、前綴m后使用規(guī)則與類名一致,; 方法命名:基本與類名一致 方法中參數(shù)命名:1,、第一個字符使用小寫;2,、首字符后的所有字符同類命名,; 變量命名:1、所有字母小寫,;2,、使用下劃線分隔單詞; 引用變量:須帶有r作前綴 全局變量:使用g作前綴 常量/全局常量:全部大寫,,使用下劃線分隔單詞 靜態(tài)變量:帶前綴s 函數(shù)命名:使用小寫字母,,使用下劃線分隔單詞 好了,,至此前三章看完了。
|
|