首頁  >  文章  >  後端開發  >  PHP該學什麼技術,如何學好PHP?

PHP該學什麼技術,如何學好PHP?

WBOY
WBOY原創
2016-07-25 08:46:19982瀏覽
想進入一個程式的世界的學者們,一開始PHP應該學什麼,如何學好PHP呢?小編為大家分享php學習以下經驗的各個知識點一一講解。




首先,大家要達成一個共識,就是學習任何一門程式設計技術都需要我們付出心血,都要講求循序漸進,由淺入深。對每一個知識點要搞透,然後透過案例來加深認識,最後還需要把學習到的各個知識點實際運用到項目中去,才能融會貫通,最後才能到達能自如的駕馭項目的水平, 現在我們就來看看應該怎樣一步一步的學習php這門程式設計技術,先看看學習PHP的順序圖,此學習順序圖是我推薦的學習內容和學習順序(除了這裡列出的內容,要走向高手之路肯定還有更多技術要學習,我這裡只是對於初學者列出的主幹學習內容,並不是全部):

一般的共同性質問題,大致是:
1.應該怎樣學習PHP,學習的順序是怎樣的?
2.PHP學好後,可以做什麼事情?
3.聽得懂課,但一旦自己獨立寫程序,就沒有思路?
4.學習PHP需要怎樣的基礎,演算法重要嗎?
file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/4TV24Z{PKCGSR}JQF80{LZ4.tmp
對於PHP初學者來說,看到這樣多的內容,心裡已經開始打退堂鼓了,但是,萬丈高樓平地起,我們只要堅持每天學習一部分內容,最後總會把這些技術都精通掌握的。

       PHP這門技術相對Java.Net來說,是比較簡單的。 PHP最主要的作用就是做站,也就是說PHP技術是用來開發網站的,像是目前世界排名前40的網站,有70%都使用到了PHP技術,例如facebook、youbute 、新浪、百度、淘寶、搜狐和騰訊這些知名的網站都有很大一部分業務是用PHP來開發的,因此被譽為web開發首選技術。開發PHP的軟體可以說是簡單的記事本也可以是一些整合開發軟體,例如 zendstudio ,這裡我列舉一些常見的PHP開發工具:
①     Editplus ② Zend Studio ③ PHP Coder ④ phpedit ⑤ easyecpilse ⑥ dw ⑦ vim
windwos下我常用的是 editplus 和 zend studio ,在Linux下我推薦使用vim來開發更專業。

       要學習php開發一定要按照正確的順序進行學習(如上圖PHP學習順序圖所示),很多人被一些《xx天精通***》這樣的垃圾書的影響,PHP這門語言相對JAVA要簡單,開發人員不需要學習太多即可透過流程導向的方式開發出一個"某某管理系統",因此社會上充斥著大量只會面向流程的開發人員,他們不懂Http協定!不懂Javascript!不懂PHP工作原理!不懂什麼是真正的物件導向程式設計,這種"不不不"開發人員能找到4000的工作 就已經非常值得慶幸了。企業中最需要的是對"Http協定、Javascript、PHP工作機制、PHP程式調優、LAMP環境調優、OOP"等技術熟悉的人,而這樣的人是非常難招的。大家記得欲速則不達,速成的結果就是以後浪費更多的時間,回想這麼多年你走過的路,有多少次為了走快點就跳著走,最後又浪費時間返工的事情,按照正確的順序才能更快、更好的掌握PHP。
       學習PHP分為以下階段,每個階段都有學習的重點與注意事項,以下詳細給大家介紹:

       第一階段: PHP前端網頁開發基礎,在這一階段中分為以下幾個階段課程
       (1)HTML基礎與加強
html語言,HTML語言背景知識,HTML全域標籤,HTML格式標籤,HTML檔案標籤,HTML超連結標籤,HTML圖片標籤,HTML框架標籤,HTML客戶端圖片地圖,HTML表格標籤,HTML框架標籤, HTML表單標籤,HTML頭元素,HTML分區標籤
       (2)XHTML基礎與加強
XHTML與 HTML的差異,Xhtml語法,XHTML DTD,XHTML驗證,XHTML模組,XHTML屬性,XHTML事件,XTHML結構化
       (3)HTML5設計與應用
HTML5介紹,HTML5多媒體處理,HTML5畫布,HTML5 Web儲存技術,HTML5表單,HTML5 屬性與事件HTML5的常用標籤(例如:applet標籤、article標籤、aside標籤、audio標籤、canvas標籤、datalist標籤、 details標籤等)
       (4)CSS基礎與加強
CSS 簡介,CSS基礎語法,CSS 衍生選擇器,id 選擇器,CSS類別選擇器,CSS盒子模型
CSS背景 、文字 、字體 、邊框 、外邊距 、內邊距 、列表 、表格CSS 高級: CSS 尺寸、分類 、定位 、偽類 、偽元素 、媒介類型
       (5)DIV CSS設計與應用
使用知名網站的首頁深入剖析DIV CSS的web標準:盒子模型經典案例-優酷首頁、仿sohu首頁面佈局、可愛屋網站首頁面。涉及知識點包括: (CSS定位的四種方式、左浮動、右浮動、清除浮動、標準流和非標準流、設定對象的層疊順序、塊元素和行元素的轉換等)
       (6)Javascript基礎語法:
Javascript基本介紹、Javascript的發展史、Javascript運作原理剖析、Javascript特點、
Javascript的識別碼、Javascript基本資料型別(數值型別、布林型別、字串型)、
Javascript複合資料型別簡介(陣列、物件)、Javascript特殊資料型別(NULL、undefine)、
定義變數、初始化、賦值、資料型別轉換的兩種方式(自動轉換、強制轉換)、Javascript的運算子(算術運算子、關係運算子、邏輯運算子)、Javascript的位元運算和移位運算
       (7)Javascript三大流程控制
順序控制、分支控制(單分支: if語句、雙分支: if-else語句、多分支if-else if-else 語句, switch-case-default語句)、循環控制(for語句、while語句、 do-while語句)、在ie和firefox如何調式Javascript
       (8)Javascript函數
函數基本概念、函數的定義、函數的呼叫方式及呼叫過程深度剖析、函數使用細節討論、使用Function類別建立函數、函數實際運用(列印金字塔、九九乘法表)、函數的遞歸呼叫、
Javascript常用系統函數使用(encodeURI、decodeURI、eval、parseInt、parseFloat、isNaN等)
       (9)Javascript陣列
數組的基本使用、使用for/while遍歷數組、數組實際運用(計算班級平均分)、二維數組的基本使用、使用for遍歷二維數組、對二維數組轉置處理、數組排序介紹、冒泡排序、順序查找和二分查詢法
       (10)事件驅動
Javascript的Event-Driven機制、事件來源、事件處理程序、事件名稱、事件物件是什麼、
事件類型(滑鼠事件、鍵盤事件、HTML事件、其它事件)、Javascript存取CSS技術、
事件驅動的瀏覽器相容性處理、常用的18個事件(onblur、onchange、onfocus、onkeydown、onmousedown等)  綜合案例(Javascript版計算器)
       (11)DOM程式設計
DOM程式介紹(HTML DOM與XML DOM)、DOM程式設計實例入門、BOM介紹、DOM物件介紹、window物件詳解、history物件詳解、location物件詳解、navigator物件詳解、screen物件詳解、event物件詳解、 document物件詳解、body物件詳解、style物件詳解、WEB版坦克大戰遊戲、forms物件(集合)、from物件、images物件(集合)、img物件、links物件(集合)、link物件、all物件(集合) 、table物件詳解、tableRow物件與tableCell物件、基於table物件的使用者管理系統
       (12)WEB網站設計與應用->商業級網頁製作


我曾經這樣說過一句話:有些朋友學習技術,像個大胖子,肚子大,腦袋大,看起來很唬人,但是腿很細,風一吹就倒了。是說基礎太差了,結果就是越學越迷茫,最後,就放棄了。因此我說」基礎很重要」 , 還有一點我要強調:在視頻教程中我講了很多的案例並佈置了作用,一定要自己親手把代碼熟練的寫出來,記住是親手寫出來,而不是照著我的程式碼抄,更不能是看懂了我的程式碼就以為自己掌握了,要知道「看懂了」和「會寫了」之間差著十萬八千里呢! 我們學習程式設計是」做中學」,是做的過程中學會的,而不是會了在做,正是在編寫一行行程式碼過程中,逐漸建立程式設計思想的,思想→程式碼這個過程是需要敲很多程式碼的。
file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/G7GRXYP~EQ94)MR4~E20Y3I.tmp
       用賣油翁的一句話說:“我亦無他,但手熟爾”,請永遠記住“巧是從熟練中演變出來的”,這就是我們常說的“熟能生巧” 。
第二階段 PHP核心程式設計
       (1)PHP基本語法加強
Apache-- directory配置段、一個IP和多個網域綁定的兩種方式、HTTP協定入門介紹、Apache邏輯元件介紹、Apache生命週期、PHP運行時序圖、PHP資料型態加強、PHP各種運算子加強、PHP三大流程控制加強、位元運算(位元與、位元或、位元異或、位元非、位元左移、位元右移)、二進位(原碼、反碼、補碼)、PHP版本線上貸款計算器。
這裡,我想說明一下: PHP基礎語法看似簡單,但是也不可大意,有些php程式設計師工作了2年,對PHP運行的原理都不清楚,對Apache的一些重要調優配置也不了解,這樣的程式設計師,在公司是不行的,很難提升。所以就一直是個編碼工人,薪資也上不去。
例如面試中經常問到: PHP中一個整數的範圍是多少, 小數的能表示的範圍是多少? 再比如如何在Apache中配置一個404錯誤頁面,如何給一個主機配置一個域名,具體怎樣操作?這樣一些基礎的問題都必須在這個階段搞定。推薦大家看 傳智播客php影片教學 23講-45講 ,有詳細到位的講解。
       (2)PHP函數
PHP函數的基本介紹、如何自訂函數、PHP頁面呼叫函數、require()、require_once()、include()和include_once()的差異、從記憶體分析PHP函數呼叫過程、函數使用需要注意的細節、函數值傳遞和引用傳遞的區別。
函數是我們php程式設計最重要的一個知識點,也是進行模組化程式設計的基礎,掌握好函數可以提高程式碼的複用性、可讀性和可維護性。
       (3)陣列、排序與找出
數組的基本概念、數組的引用方式、數組引用陷阱、與PHP數組相關的函數(count、is_array、print_r、explode等)遍歷數組的三種方式、刪除數組元素和數組運算符、數組使用細節總結、內部排序法和外部排序法介紹、冒泡排序和快速排序、選擇排序和插入排序、順序查找和二分查找、二維數組介紹和使用。
依據 我的經驗,我們去找工作的時候,一定會一道關於排序和查詢的題,最常見的問題是: 請你寫出冒泡排序法,並使用二分查找來查找一個數。在專案開發中,陣列是銜接變數和函數的重要資料類型,在MVC開發中,往往需在控制器中將陣列分配給視 圖去顯示,在演算法中,陣列也是變化最為靈活的。
       (4)物件導向程式設計
物件導向程式設計基本概念、類別和物件的關係、如何定義類別、成員屬性(變數)、如何建立物件實例及如何存取物件屬性、物件在記憶體中存在的形式、堆疊、堆疊、全域區、常數區和程式碼區的關係、成員方法(函數)及使用細節、建構方法(函數)、預設建構方法(函數)、this的基本概念與使用、析構方法(函數)、PHP的物件垃圾回收器、靜態變數(類別變數)的概念與使用、靜態方法(類別方法)的概念與使用、物件導向程式設計的三大特徵介紹、物件導向程式設計-封裝、物件導向程式設計-繼承、物件導向程式設計-多型、存取控制修飾符(public、protected、private)、方法重載(overload)、方法重寫(override)、方法重載(overload)和方法重寫(override)的比較、PHP魔術函數(__set __get __construct __destruct __call等)和魔術常數(__LINE__ , __FILE__ ,__FUNCTION__等)、抽象類別(abstract class)的概念和使用介面(interface)的概念和使用、介面程式設計和繼承的區別、關鍵字final的使用、常數關鍵字const 的作用和使用注意事項、物件導向程式設計強大的反射機制、物件導向程式設計之動態代理。
物件導向程式設計已成為PHP程式設計的主流,物件導向程式設計讓程式變得更強大和靈活,更利於專案的開發與維護。關於物件導向程式設計 在 傳智播客 php影片教學 61講-78講,看看什麼才是真正的PHP物件導向思想,什麼是真正的OOP。
       (5)錯誤處理與異常處理
錯誤處理的基本概念、PHP處理錯誤的三種方式介紹、使用die()進程錯誤處理、自訂錯誤和錯誤觸發器、錯誤日誌、錯誤等級介紹、PHP異常處理的基本介紹、PHP異常處理(try throw catch)、自訂異常、如何設定頂級異常處理器、異常使用的規則。
在編寫php web 應用程式時,錯誤處理是一個重要的部分。如果您的程式碼缺少錯誤偵測編碼,那麼程式看起來很不專業,也為安全風險敞開了大門 。所以大家需要清楚在PHP程式中如何對錯誤和異常進行有效的處理,以確保程式的安全和健壯。
       (6)預先定義超全域陣列
預先定義超全域數組-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES 、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和亂中文碼問題)
       (7)cookie和session
什麼是會話、cookie的基本概念、cookie的curd操作、cookie重要的api介紹、cookie運作原理圖解、cookie的實際運用(顯示使用者上次造訪時間、顯示使用者上次瀏覽過的商品、) 、cookie使用的注意事項、session資料存放的位置和形式、session的curd操作、 session運行原理圖解、session實際案例-在線購物車、IE禁用Cookie後的session處理方案、session防止用戶非法入侵、 session配合驗證碼使用、php.ini 中關於cookie和session配置說明(重點,難點)、自訂會話處理器、Session和Cookie的區別。
Cookie(小甜餅)是客戶端技術,伺服器把每個使用者的資料以cookie的形式 寫給使用者各自的瀏覽器。當使用者使用瀏覽器再去存取伺服器中的web資源時,就會帶著各自的資料去。
Session 是伺服器端技術,利用這個技術,伺服器在運行時可以為每個用戶的瀏覽器創建一個其獨享的session文件,當用戶再去訪問伺服器中的其它web資源時,可以從用戶各自的session 中取出資料為使用者服務。 Session和Cookie是最重要的使用者行為追蹤技術,尤其是電商,sns專案中運用廣泛,因此是我們學習的重點和難點,也是 面試筆試的重點。關於cookie和session大家可以參考傳智播客 php影片教學 114-121講
       (8)PHP檔案程式設計
文件及文件編程是什麼、文件流的基本概念、文件的操作方式、PHP文件編程函數匯總介紹、最常用的13個文件函數、使用文件完成網站計數器、文件上傳下載操作-mini版音樂共享網、無限級文件掃描器。
檔案最主要的作用就是保存資料,它既可以保存一張圖片,也可以保存影片,聲音...,本章節要求同學們掌握文件的各種操作和上傳下載,動態創建和刪除目錄,文件和無限級掃描文件等, 掌握好這些知識點對我們專案開發非常重要。
       (9)PHP繪圖技巧
php繪圖座標系、繪圖步驟說明、繪圖快速入門、繪圖最常用的函數、繪圖技術的實際運用—人口分佈餅狀統計圖、專業的報表開發--JpGraph、JpGraph的安裝與設定、JpGraph實際應用-網友支援狀況統計圖、JpGraph中文亂碼處理。
如果你使用過財務軟體,那你一定看見過各種對財務數據進行統計和分析的圖表,可能是表格,也可能是餅狀圖、柱狀圖、曲線圖..,簡單的說,就是使用圖表動態顯示數據。而這些圖表的顯 示都要使用到PHP的繪圖技術,繪圖技術要求熟練的使用PHP的繪圖函數完成專案的需求。能開發一些統計圖,非常有實用價值。如:
       [img]file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/@$EU9Q4XE[OQZY99JQF$N(D.tmp[/img]

       如何檢驗自己的學習效果,看看下面的一些面試題 , 看看能完成多少? 如果能正確完成80%,說明這個階段學到還不錯。
       練習1: 簡述echo(),print(),print_r()的差異?
       練習2: 說出PHP的超級全域變數數組,共九種
       練習3: 如何在一個php函數中使用具有全域屬性的變量,說出兩種方式
       練習4: 三個小題:
4.1.跳水比賽,8個評審打分數。運動員的成績是8個成績取掉一個最高分,去掉一個最低分,剩下的6個分數的平均分數就是最後一個得分。使用一維數組實現打分功能。
4.2.請把打最高分的評審和最低分的評審找出來。
4.3.找出最佳評審和最差評審。最佳評審就是評分和最後得分最接近的評審。最差評審就是打分數和最後得分相差最大的。
       練習5: include和require都能把另一個文件包含到目前文件中,他們有什麼不同? Include和include_once又有什麼差別?
       練習6: 寫出一個能創造多層次目錄的PHP函數
       練習7: 寫出一個函數,能遞歸列出某個目錄下的所有資料夾和檔案名稱.
       練習8: 在防止SQL注入的時候,通、會把單引號、雙引號等轉義,需要用到哪個函數
       練習9: 寫出插入排序法與快速排序法代碼
       練習10: 二分查找的原理是什麼? 請寫出二分查找函數
       練習11: 寫出php的public、protected、private三種存取控制模式的差異
       練習12: 請寫出一個完整的嚴謹的單例模式
       練習13: __set 和 __get 魔術函數是做什麼的,何時被觸發
       練習14: 如何防止物件複製, 物件複製會複製 static屬性嗎?
       練習15: 說strip_tags的功能與用法?
       練習16: 若需要原樣輸出使用者輸入的內容,在資料入庫前,要用哪個函數處理?
       練習17: 如何控制多個行程去並發刪除,插入和更新資料庫的某張表?
       練習18: PHP的安全模式與非安全模式的差異
技術就是一層窗戶紙,捅破了,你感覺沒有什麼,不就是這麼簡單嗎?可是如果你不知道,就感覺很神秘,因此你了解的知識點越多越底層,就可以讓你的專案更有技術含量。
       反過來,如果我們知道很多知識點,但是不會把知識點靈活的運用到專案中,就成了> 中的段譽,空有無窮的內力,就是不知道如何運用。所以,學會做項目,做規範的項目也是非常重要的第三階段:MySQL資料庫程式設計&中級項目階段

(1)    mysql資料庫
從目前看,任何一個有商業價值的專案或網站,都離不開MySQL資料庫, 因此系統深入的掌握MySQL資料庫各種操作非常重要,重點是圍繞ddl/dql/dml/dcl/dtl學習。同時要學習在專案中如何設計出有商業價值 的資料庫模型的技巧,並初步了解到MySQL的最佳化細節。身為一個合格的PHP程式設計師,我覺得以下知識點是必須要掌握的:

MySQL 資料庫的三層結構、MySQL資料庫的安裝與設定、資料庫命令列的常見動作(啟動、連線、操作、關閉等)、SQL語句分類(ddl/dml/dcl /dql/dtl)、創建、檢視、刪除、修改、備份及還原資料庫、如何建立表及MySQL資料型別詳解、修改、刪除表操作、如何對資料表進行CRUD操作、select語句中使用orderby、合計函數(count/sum/avg/ max/min)、select語句中使用group by 和having子句、時間日期常用的10個函數、字串相關11個函數、數學函數10個、流程控制函數3個、其它函數4個、MySQL中文亂碼處理、 PHP作業資料庫執行個體、MySQL表格類型和儲存引擎(BDB/HEAP/ISAM/MERGE/MYISAM/InnoBDB)、如何選擇資料表的儲存引擎、 事務的基本概念、交易和鎖定、交易提交和回溯操作、 PHP程式中如何使用事務、事務隔離等級、表的主鍵和外鍵、多表聯合查詢和笛卡爾集、自連接、單行子查詢和多行子查詢、蠕蟲複製創建海量表、合併查詢(union , union all,intersect , minus)、表的內連接和外連接(左外連接、右外連接和完全外連接)、維護數據的完整性-約束(not null、unique, primary key,foreign key,和check )、商店售貨系統表設計案例、索引(主鍵索引/唯一索引/全文索引/普通索引/複合索引)、索引優缺點分析、觸發器和預存程序

(2)資料庫程式設計(mysql mysqli pdo)
mysql 擴充庫簡介、mysql擴充函式庫操作mysql資料庫程式、mysql_query()執行結果、釋放資源和連線、對mysql資料庫進行CRUD、 mysqli擴充庫簡介、第一個mysqli擴充函式庫程式、$mysqli-> query()執行結果、mysqli對資料庫進行CRUD操作、 mysqli擴充庫增強--批次執行sql語句、mysqli擴充庫增強--事務控制、事務的acid、預處理MySQLi_STMT、PDO的介紹和使用

(3)中級項目
       看十遍,不如自己實際動手做一個專案。專案經驗就是從一行行 程式碼累積的,程式設計的能力也是透過攻克一個個程式bug來提升的。中級階段專案是把前面學習過的知識點實 際運用到專案中的最佳時機,也是檢驗自己學習成果的時候。當你通過熬夜點燈,網上查資料把項目最終完成時, 經歷了項目從無到有,從有到完善時,你的編程能力,把控項目的能力在潛移默化中提高了,為學習下一個階段(PHP高階程式)打下紮實的基礎。我推薦幾個項目給大家,大家可以依照自己的實際狀況選一個項目來做.
BBS系統: 提供網路使用者互動和交流功能。

以上就是php學習的內容知識點,更多相關資料:http://www.kokojia.com/list/219.html



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn