關於 PHP 的好書有哪些?


比較新的:
Modern PHP 國內尚無中文版,但亞馬遜中國可以買到原版的,講PHP的最佳實踐;
update:國內有影印版了現代PHP(影印版)

不算新但一樣實用的:

PHP Objects, Patterns, and Practice

PHP Cookbook


Update 2016-09-05:
今天有朋友留言說,五年過去了,是不是要更新一下了?我仔細反思了下,仍然是沒有什麼好書值得推薦的。

補充解釋一下我為什麼這麼說。我對這個問題的理解,一直是「體」和「用」兩個層面的問題。在這裡,「體」是什麼?是「軟體工程」、是「程序設計」、是「代碼編寫」。「用」是什麼?就是PHP。

所以,題目問「關於PHP的好書有哪些」,我理解,這問題其實是很狹隘的。所以,最權威的東西,基本就是官方的文檔了,深入點的材料大概是《PHP Internals》這類東西,或者關於擴展編寫的原理的,再還有什麼,實在是想不出來。

但是,如果問及,「關於程序設計的好書有哪些」,「關於軟體工程的好書有哪些」,我想是很多很多的。大家可以到相應的問題下面看看高票答案,網上也很多「程序員必讀書單TOP10,20,50」之類的東西,都是很具有參考價值的。

在很多想從事程序員這個行業的新人眼裡,程序員就是學PHP,學Java,學C++,學iOS,更有甚者,荒謬到學習VisualStudio,學習Eclipse,學習XCode,我很想告訴他們,其實,你們先要學習原理,原理就是五大原理,計算機組成、操作系統、資料庫、計算機網路、編譯原理,然後,你們要學好演算法與數據結構,再次,才是編程語言。語言已經是實踐層面的東西了。語言,尤其是以應用為目的的語言學習,都是很淺層次的知識,花點時間看看文檔,也就夠了。

《PHP Internals》:首頁 | TIPI: 深入理解PHP內核

==========原答案==========
我感覺一本都沒有??

一般大家最為推崇的一本書是那個叫「聖經」的書,就我個人感覺來說,那本書還是挺垃圾的。
有個朋友跟我說,「PHP是一個沒有營養的語言」,我覺得這個話,沒錯。所以,學習PHP並不需要看什麼書的,市面上任何號稱的PHP入門,你可以挑一個最最便宜的來看,因為語法沒啥難點,無非就那麼點東西,哪個書都一樣。而這個語言本身的話,基本沒有什麼深刻內涵,就是一個解決問題的語言。

所以,你用PHP,可能就是要抱著一種實用主義精神,研究如何快速的,解決問題。
至於後面面向對象的開發範式,Web框架,我想這些東西都不是PHP特有的,PHP已有的這些,也都是從別的語言借鑒而來,也沒什麼人專門為了這些去寫書。學面向對象,可以看看設計模式,.net框架,學Web框架,可以學學RoR,我覺得就很全了。
至於PHP本身,真沒啥好學的。

明確了態度後,還是給個推薦吧:
1. 聖經,搜搜就知道,推薦指數 3星
2. php官網手冊,推薦指數 5星
3. 知名框架源代碼,如Zend Framework,Code Igniter,Yii Framework的源代碼,推薦指數 5星


PHP沒什麼可學的。

主要是學框架(其實也沒啥可學的)、資料庫、伺服器、linux。

所以我推薦apache/nginx文檔,框架的文檔,mysql的文檔,linux使用說明,等等等等。

PHP: PHP 手冊
MySQL 5.1參考手冊
Apache 2.2 中文官方文檔
Nginx 中文官方文檔
鳥哥的 Linux 私房菜
Laravel 5 中文文檔


這裡假設你不是計算機相關專業出身,已經具備 HTML 和 CSS 的基礎知識,可以獨立製作靜態網頁,並且最好具備基本的編程知識,如果不具備,可以先讀譚浩強的《C 程序設計》(清華大學出版社)前 8 章(後面幾章真的不用讀)。

PHP 的入門書籍有兩個選擇:

一個是 O"Reilly 的 Head First: PHP MySQL(中文版由中國電力出版社出版),我個人是非常推薦這本的,其實 O"Reilly 的 Head First 系列圖書用於入門都很不錯,有大量的實例、圖解,以及形式多樣的練習,不會羅列一大堆關鍵字和規則讓你昏昏欲睡,而是會讓你很驚訝:原來編程也可以這麼學!然而,有的同學更喜歡傳統一點兒的教材……

所以第二個是《PHP和MySQL Web開發》(機械工業出版社),也就是被一些同學稱為「垃圾PHP語言的垃圾聖經」的那本書,其實我覺得這樣侮辱別人的勞動成果真的不是很好,並不能顯得你有多高級。言歸正轉,這本書的第 6 章和第 7 章暫時不用讀,第三篇也可以暫不讀,但第四篇和第五篇你一定不要放過,如果遇到讀不懂的地方(必然的)可以多上網查查。

讀過這兩本書之後,其實你已經可以做出像樣兒的動態站點了,剩下的就是多接觸實際需求,多實踐。如果需要了解面向對象PHP可以看看《深入PHP,面向對象、模式與實踐》(圖靈程序設計叢書,人民郵電出版社),如果希望有個手冊,可以查詢一些工作中常見問題的解決方法的話,可以買一本《PHP 經典實例》也是 O"Reilly 的,中文版由中國電力出版社出版。

最後再說個題外話,技術只是技術,不要把它變成信仰,需要什麼就學什麼,不用想太多。


其實提問時你應該指出個人所處的程度,如果編程是從入門開始,個人推薦是:

《PHP與MySQL 5程序設計》(W. Jason Gilmore、 朱濤江,目前第 4 版)
《深入PHP:面向對象、模式與實踐》(Mart Zandstra、 陳浩,目前第 3 版)
PHP 的官方站點有基礎的東西,手冊下面的評論也是非常值得參考的。
《深入PHP:面向對象、模式與實踐》背面有個閱讀線圖,裡面推薦的圖書也值得一看,都是「圖靈」的書,像《PHP高級程序設計:模式、框架與測試》、《Ajax與PHP基礎教程》《PHP Web 2.0開發實戰》

深入了解就會涉及到伺服器架設與配置(Apache, Nginx, MySQL),緩存,操作系統,網路協議等。

《代碼大全》這類修鍊編程思維的書還是非常有必要的。

書只是輔助,代碼還是在於多實踐,我承認這點,但是,我也反對那種只實踐不看書(不通讀 PHP 手冊)的論點

PHP 是比較容易上手,假定你實踐能力和理解能力都超出一般,但是直接實踐而來的效果是往往你知道「How TO」,而不知「Why To」,而書正是「Why To」的有力補充。

比如,不用充分理解面向對象設計的情況下,只要熟悉了框架的使用和基礎的 PHP 語法的前提下,你就能快速開發出大部分網站,但是,如果拋掉框架,你可以用面向對象設計的方法獨立開發一個站點嗎?或者說,你可以開發出一個優秀的框架嗎?再放低一點姿態,如果你面對框架沒有實現的功能,你能輕鬆的用面向對象的思想寫個代碼優良的擴展或組件嗎?如果做不到,只是說明你入門了,離「高級」還有距離。

再比如,沒有通曉原理或者沒有認真閱讀手冊時,你的代碼產生的 Bug 會讓你撓破腦袋而不得其解,舉幾個容易出錯的列子:

  1. if (0.123 == 0.123)
  2. trim, ltrim, rtrim 剔除字元串
  3. 資料庫執行更新操作 $sql = "UPDATE ..." $res = $dbh-&>exec($sql),返回 0行,而你直接 if ($res) 來判斷是否成功執行 SQL 而忽略 PHP 的自動類型轉換

對於實踐,優秀的代碼項目+其精心的文檔其實也是起到「書」的作用:

學習面向過程的優良設計,例如去研究 WordPress 的源碼,參考其函數手冊,如果開始很難看懂,可以先從寫模板開始,再去寫插件,再去諮詢研究各類的實現方式;

學習面向對象的優良設計,例如去研究 Yii 的源碼,閱讀其 Class 文檔,然後去真正理解繼承、抽象、介面,自動載入,耦合、聚合、封裝、多態,模式,ORM。

學無止境,學習方法很重要!

總之,優秀的代碼能讓你真正理解為什麼代碼需要「設計」,即使是面向過程的方式也不能缺乏「設計」,設計優良的代碼不會讓人覺得這個語言是「沒有營養的語言」,恰巧的事實是,因為「靈活」、「入門簡單」而被沒有充分吸取到「營養」的人因濫用而玷污罷了。


互聯網是本大書


推薦


逃 ε=ε=ε=┏(゜ロ゜;)┛


推薦去看看兄弟連的視頻教程 結合 高洛峰的那本php書籍 這樣入門很容易。


PHP是一門重實踐的語言,也就是說你更需要在實際的項目中鍛煉自己的編碼能力。這是前提。
在上述的前提下,還需知道語言本身沒什麼好學的。語法?http://php.net!沒有比這個更好的。這是基本功,理所當然的該爛熟於心的。
同時學會閱讀別人的代碼也是很重要的技能。
在此之外就是和php 無關卻關係到你能否學好編程的書。這是進階之路。
比如這幾本。
上邊兩本鍛煉你的意志力和你的情懷。
第三四本讓你更加自如的coding
第五本讓你淺顯的了解你的代碼所運行的環境
第六本,神書 …


去amazon看看排行榜就知道了


好書是有的,比如,《PHP高級程序設計:模式、框架與測試》認真看完,會有收穫的 書籍之外,可以看官方手冊。 插一句,那些感覺簡單的,要麼是沒深入,或者根本不了解。當然,還有真的稱為大神的。所佔的比例可以自己斟酌。 就像剛開始覺得C簡單,現在回想,覺得是自己想簡單了。


圖靈的PHP書都不錯


直接推薦:http://php.net


入門推薦看PHP自己的手冊,權威、即時、詳盡,有漢化。
進階用戶推薦看 Extending and Embedding PHP,知其然知其所以然。


個人覺得簡單看本書入門就好了,不必深究,還是在看代碼和寫代碼的過程中提高比較好。以手冊為權威參考,以實踐為準。


從我開始學php,還真沒有認認真真看過那本專門講php的書。
剛開始看別人的源碼,如discuz,phpcms…遇到不會的就是看php手冊,手冊是個好東西啊


如何選書...

外文書,經典的厚一點的很好

但越薄的越沒品,純圈錢商業行為...

比如《php經典實例》,和《什麼函數速查》等等,尤其是電力這種三腳貓出版社,純粹跟著人民郵電出版社混飯吃...

外文書,如果遇到很一般的出版社翻譯,那種理解起來酸爽感...

還有國內賣60以下的書,如果不是針對性很強的,很大可能是只有基礎部分/範例,東抄一點西抄一點的速食主義書籍,每年都有,這種還不如幾年前有名作者用心寫的老書...

還有種雙標題的,最後1,2個章節加一點點新知識簡單解釋,書的標題上給的是xx進階+新知識,這樣子來坑錢...

還有很久的老書,也不值得看(舊知識點也在裡面,新人根本不知道該學哪,把時間浪費了...)

如果新人想入門,只推薦跟著php_manual或網路達人寫的帖子補充或者國內某款較厚較貴的熱銷書來一起做,跟著書+視頻,快速搭建一個系統性的大知識框架,不要東看看西瞧瞧...

等你有了自主判斷力,再去擴展性地選購書籍...

請不要隨便地選入門書,比如某自稱大佬的人,他本身已經並不是靠著書籍來入門(而是有其它基礎+php_manual等),所以他對於實體書籍的依賴並不看重,才可以隨便點...

另外說下找書...

jiumodiary,jb51,pansou

圖書館借閱,淘寶二手書店,也可以找某些私人qq找付費的高清電子書

書評的話,可以看

dangdang,jd

尤其是jd評論區,先勾選只看當前商品,然後去看中評和差評區的...(不專門賣書的地方,才可能有客觀評價,dd不行...)

推薦的書就不寫了,自己搜baidu/google/zhihu吧...


入門的書 最好的 不過《PHP web程序涉及教程域實驗》 徐輝主編,很全面,看完這本啟蒙書,再看一些模板類的書籍,對於初學者最終目的還不是為了自己做個網站不是嗎


PHP與MySQL 5程序設計


推薦閱讀:

TAG:書籍推薦 | PHP | PHP框架 |