1、《PHP基礎教程(第4版)》
書中內容相對簡單,但可以對PHP有一個大概的認識,方便以後的學習。
這本書以通俗易懂的語言向初學者介紹了PHP 語言的基本概念、使用方法和注意事項。全書通 過豐富的示例,引領讀者逐步掌握這門流行的Web 開發語言,使讀者能夠上手編寫適用於常用場景的PHP 腳本。適合有基本HTML 經驗的讀者閱讀。
2、《PHP與MySQL程序設計(第4版)》
這本書中稍微提及了PHP連接和使用MySQL資料庫的方法,全面講述PHP與MySQL的經典之作,書中不但全面介紹了兩種技術的核心特性,還講解了如何高效地結合這兩種技術構建健壯的數據驅動的應用程序。
3、《深入PHP:面向對象、模式與實踐(第3版)》
書中主要介紹了如何使用面向對象技術和設計模式編寫穩定的、可維護的代碼,如何使用Subversion管理多個開發人員,如何使用Phing和PEAR進行構建和安裝,以及將構建和測試過程自動化的策略,包括持續集成。
這本書適合每位PHP開發人員進階參考。
可幫助掌握PHP面向對象設計和開發的精髓,並最終躋身高端PHP開發人員之列。
4、PHP高級程序設計:模式、框架與測試》
書中首先從OOP 採用的機制—— 抽象類、介面、契約式編程開始講起,然後介紹了靜態方法、單例模式、工廠模式和PHP 6 的新特性等內容, 接著介紹了測試和文檔方面的內容,還介紹了標准PHP 庫SPL 方面的知識以及PHP 開發人員最有可能用到的MVC 模式,最後介紹了Ajax 、JSON 、SOAP Web 服務以及SSL 客戶端驗證等Web 2.0 方面的內容。適合中、高級的PHP 程序員閱讀。
5、《應用Yii1.1和PHP5進行敏捷Web開發》
這是一本介紹性的圖書,描述如何去使用Yii應用的測試驅動開發(TDD)的方法開發實際的工程。如果想要快速掌握Yii,不妨看看它。
『貳』 php學得差不多了,感覺正則表達式有點復雜,大家覺得php最難的部分是什麼
最難的是創意, 其它的都是死規則。關鍵是編寫出適合自己的代碼。
『叄』 php 是什麼是什麼
PHP,是英文超文本預處理語言Hypertext Preprocessor的縮寫。
一、概念。
PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用。
二、解析。
PHP 獨特的語法混合了C、java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
三、特點。
1、PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
2、PHP安裝它可以比 CGI或者Perl更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比。
3、PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多; PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。
4、支持幾乎所有流行的資料庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展。
『肆』 PHP真的那麼簡單嗎老有人說PHP特簡單,怎麼我買了本書看的吭哧哧吭哧的
什麼語言想簡單都能簡單,想復雜都能復雜,關鍵看你學到什麼程度了。
說PHP簡單的都是網上的人雲亦雲,真正的高手是不會說PHP簡單的,以前PHP還不支持面向對象的時候,確實只能做小網站,但是從PHP5以後,PHP從此摘掉了只能做小網站的帽子,現在還在說PHP簡單的只能說是菜鳥,很可能根本就不會PHP。
另一方面,其實所有的高級語言都簡單,因為高級語言設計之初就是為了簡化程序員的工作量,PHP也不例外,這是面向對象的精髓所在。所以說如果一門語言簡單其實是好事,等你走了程序員就知道了。
至於PHP的前途,國內隨著電子商務,web2.0,以及所謂的web3.0,甚至雲計算,都推動了PHP在國內的火爆氣氛,再加上整個LAMP平台的低成本,高效率,簡直就是國內市場環境的絕配。
我再次提醒你,說PHP簡單的要麼是菜鳥,要麼是會一門其他語言的菜鳥,尤其是拿語言互相比較的內種菜鳥。
『伍』 如何能快速領會PHP的精髓,突破初級的瓶頸
讀高手的代碼,並且完理解,然後自己上手重復寫出來...
重復以上步驟..
『陸』 PHP程序員如何提升工作能力
PHP並非想大家所說且所想的那麼簡單的一門編程語言,簡單說,PHP門檻是低,學習入門更是簡單,這也是PHP精髓的東西,好學!=簡單。有的人拿一本
書按照例子把一個功能呢敲出來了,就以為真的能把這個能力了解透了,並非如此,但只要你多花的時間和精力去學習和思考,我相信,再一段時間地努力後,你肯
定成為這個專業中的高手。其實這篇心得並非本人完全自己去思考而寫的,只是看到一些不同觀點的地方而改變的,下面我們來介紹一下如何從PHP新手去學習、
學好、學精。
一、心態
我說了php入門很容易,不錯,但我不說php它很容易,php應用起來博大精深,如果你說做php很簡單,那麼我只能說你懂php懂得比較簡單吧.在大學讀書的時候大家一定要心態擺正,比如你想學什麼語言,以後要做什麼程序員,比如java,C++。
我講一例子,比如你立志做java程序員,你首先在校學校開這課程時努力要把它學好,學好了還不行哦,因為這些只能應付考試的,工作上這算是不起眼的知
識,所以在剩下來的讀書時間努力涉及一些應用上的,更深層次的知識,把java的學得更深才行。人的精力是有限的,你如果想一起同時學精通php,又精通
java,等等,算了吧,人家工作了幾年都不敢說精通,還在校的只能說是不知天高地厚了。---如果你以後想編程就努力專一花大量的時間深學它,當然也要
多學一下其它的。
初學者不要有這種精幾門編程語言的心態,到頭來樣樣不精,連工作也找不到.
二、書
買書來學習是最直接實在的,網上中原的視頻教程,it實驗室的算了吧,想看它們就會php是不行的,如果想學某種編程語言,就要買到那種編程語言最書
的幾本書來一起看,為什麼要買幾本呢,因為這樣的,有書的這節講不夠細,那些書偏會講得細,這樣有個互補.把它們的理解合起來,更易加深對程序的理解。
學好入門的後就買幾個開發實例的書來看,最好把裡面的代碼都打打運行一下,慢慢地就會適應工作. 如果你捨不得買幾十元一本的書,那樣你會多走很多彎路.單單的一本書給不了你多少知識.
三、多學相關知識
一個phper懂得php是最基本的!但必須要熟練js,css,html,sql,資料庫,設計模式...等等.說真的,我總覺平時寫js,比
php還寫得多.
如果說php你強,那麼熟練js,css,html,sql,資料庫,設計模式等等就是你值錢的地方了..不懂它們,你php再好,也算是菜鳥.工作中很
快被淘汰..大家能理解到這個重要性嗎.
四、多讀源代碼
多讀開源的代碼,dz,dedecms很多php的開源代碼,讀多了你思路更廣了,你會發現很多很妙的寫法,也是提高水平最快的方法之一.
五、堅持
做事要堅持,學編程也要,這是前提,是基本.
『柒』 深入PHP中的HashTable結構詳解
深入PHP中的HashTable結構詳解
對php內核有一定了解的人應該都知道php的精髓就是HashTable,HashTable在php的實現中無處不在。包括php的數組、什麼全局變數、局部變數的作用域等等,php的hashtable拆開來說就是四部分:
hash函數:用的是time33的散列函數,將一個字元串的key轉換成一個數字
一個C數組:用來儲存桶(buckets)的
兩個雙向的鏈表:第一個雙向鏈表是數組的每個元素(桶bucket)是一個雙向鏈表,這樣做是為了解決hash沖突;第二個雙向鏈表是數組將每一個桶(bucket)連接起來,這里要連接的也就是第一個雙向鏈表的鏈表頭,這樣做是為了遍歷整個hash表用的,鳥哥有篇blog是講php的foreach的,這里這樣設計就是給foreach用的==>《深入理解PHP之數組(遍歷順序)》
我這里不再說hashtable的struct和bucket的`struct了,因為下面的推薦鏈接幾乎都講了,我不覺得我能描述和說的比他們好,每個人的水平不一樣,我就以我現在的技術水平來描述,所以我就只把我整理的一些東西記錄一下
下面是php中hash實現的兩個文件:zend_hash.c zend_hash.h。這兩個文件裡面實現了一堆的api,也引申出了一堆的api,下面是實現出來的api的原型
復制代碼 代碼如下:
ZEND_API ulong zend_hash_func(const char *arKey, uint nKeyLength)
ZEND_API ulong zend_get_hash_value(const char *arKey, uint nKeyLength)
ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
ZEND_API void zend_hash_set_apply_protection(HashTable *ht, zend_bool bApplyProtection)
ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC)
ZEND_API int _zend_hash_quick_add_or_update(HashTable *ht, const char *arKey, uint nKeyLength, ulong h, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC)
ZEND_API int _zend_hash_index_update_or_next_(HashTable *ht, ulong h, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC)
ZEND_API int zend_hash_rehash(HashTable *ht)
static int zend_hash_do_resize(HashTable *ht)
ZEND_API int zend_hash_del_key_or_index(HashTable *ht, const char *arKey, uint nKeyLength, ulong h, int flag)
ZEND_API void zend_hash_destroy(HashTable *ht)
ZEND_API void zend_hash_clean(HashTable *ht)
static Bucket *zend_hash_apply_r(HashTable *ht, Bucket *p)
ZEND_API void zend_hash_graceful_destroy(HashTable *ht)
ZEND_API void zend_hash_graceful_reverse_destroy(HashTable *ht)
ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
ZEND_API void zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t apply_func, void *argument TSRMLS_DC)
ZEND_API void zend_hash_apply_with_arguments(HashTable *ht TSRMLS_DC, apply_func_args_t apply_func, int num_args, …)
ZEND_API void zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
ZEND_API void zend_hash_(HashTable *target, HashTable *source, _ctor_func_t pCopyConstructor, void *tmp, uint size)
ZEND_API void _zend_hash_merge(HashTable *target, HashTable *source, _ctor_func_t pCopyConstructor, void *tmp, uint size, int overwrite ZEND_FILE_LINE_DC)
static zend_bool zend_hash_replace_checker_wrapper(HashTable *target, void *source_data, Bucket *p, void *pParam, merge_checker_func_t merge_checker_func)
ZEND_API void zend_hash_merge_ex(HashTable *target, HashTable *source, _ctor_func_t pCopyConstructor, uint size, merge_checker_func_t pMergeSource, void *pParam)
ZEND_API int zend_hash_find(const HashTable *ht, const char *arKey, uint nKeyLength, void **pData)
ZEND_API int zend_hash_quick_find(const HashTable *ht, const char *arKey, uint nKeyLength, ulong h, void **pData)
ZEND_API int zend_hash_exists(const HashTable *ht, const char *arKey, uint nKeyLength)
ZEND_API int zend_hash_quick_exists(const HashTable *ht, const char *arKey, uint nKeyLength, ulong h)
ZEND_API int zend_hash_index_find(const HashTable *ht, ulong h, void **pData)
ZEND_API int zend_hash_index_exists(const HashTable *ht, ulong h)
ZEND_API int zend_hash_num_elements(const HashTable *ht)
ZEND_API int zend_hash_get_pointer(const HashTable *ht, HashPointer *ptr)
ZEND_API int zend_hash_set_pointer(HashTable *ht, const HashPointer *ptr)
ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos)
ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos)
ZEND_API int zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos)
ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
ZEND_API int zend_hash_get_current_key_ex(const HashTable *ht, char **str_index, uint *str_length, ulong *num_index, zend_bool plicate, HashPosition *pos)
ZEND_API int zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos)
ZEND_API int zend_hash_get_current_data_ex(HashTable *ht, void **pData, HashPosition *pos)
ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const char *str_index, uint str_length, ulong num_index, int mode, HashPosition *pos)
ZEND_API int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compar, int renumber TSRMLS_DC)
ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t compar, zend_bool ordered TSRMLS_DC)
ZEND_API int zend_hash_minmax(const HashTable *ht, compare_func_t compar, int flag, void **pData TSRMLS_DC)
ZEND_API ulong zend_hash_next_free_element(const HashTable *ht)
void zend_hash_display_pListTail(const HashTable *ht)
void zend_hash_display(const HashTable *ht)
;『捌』 PHP是什麼如何自學好PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
精髓就兩個:
多實踐,碼php
咬住問題必須解決
『玖』 PHP學習的難點,精髓在哪
,我現在也正在學習LAMP
下面是我整理的一點東西,等吧這些東西學好後,
估計你能夠成為一個高手了
★Ajax使用(HTML XHTML XML CSS JavaScript Jquery DOM Dhtml)
函數/數組/字元串
★文件操作(生成html)
圖像處理
★資料庫操作
★類和對象
★正則表達式
cookiesession
★php函數庫
smarty模板引擎
★ZendFramwork框架
我不明白你說的 值得不值得學php是什麼意思,是從技術 還是 從錢途來說呢
要說難點,我覺得是
JavaScript
資料庫設計
面向對象設計