php學(xué)習(xí)總結(jié)
php學(xué)習(xí)總結(jié)1
先來說說學(xué)習(xí)PHP有什么用處,為什么要學(xué)?畢竟學(xué)習(xí)前應(yīng)該是對所要學(xué)習(xí)的東西有所了解,才會更有興趣去學(xué)習(xí)它。
學(xué)習(xí)PHP主要是用來開發(fā)web站點,也就是網(wǎng)站,它和asp、java等語言類似,都是運行在服務(wù)器上的程序,用來動態(tài)地為用戶提供網(wǎng)頁服務(wù)。
學(xué)習(xí)了它,現(xiàn)實里可以用它賺錢,方法是自己接活兒,或者找PHP程序員的工作,或者你也可以用PHP來自己制作網(wǎng)站,制作了網(wǎng)站后,當(dāng)然也可以賺錢。
如果感覺自己在學(xué)習(xí)php方面無從下手,那么有一套很好的教程可以讓你擺脫這種心理,你去看看,有一套張老師講的教程,循序漸進而且有系統(tǒng)。所有的都是從實例出發(fā),最重要的是免費。
再有一點重要的是,在學(xué)習(xí)前最好有個目標(biāo),就是你學(xué)這個你想用來做啥,比如我就先構(gòu)思個網(wǎng)站,然后在學(xué)習(xí)中解決各類問題。
另外最重要的就是要有毅力
我英文不好能學(xué)習(xí)嗎?回答是YSE
我數(shù)學(xué)不好能學(xué)嗎?回答是YES
我沒有基礎(chǔ)看這個視頻學(xué)習(xí)能學(xué)嗎?回答也是YES
我沒耐心能學(xué)嗎?回答是NO
學(xué)習(xí)php只是一部分,html、css、js是都要學(xué)的,而且是必須的,但是這些東西尤其是js很像php,其它的就太簡單了,沒什么難的。如果更好的學(xué)習(xí)建議可以先看看些 HTML 和 SQL 的基礎(chǔ)。另外w3school也是個不錯的地方,里面有詳細的手冊和資料。
開始學(xué)習(xí)的時候,尤其是最開是下手編程很艱難,可以上網(wǎng)找些源代碼來琢磨,但是一定要自己動手寫,不能光看不練。PHP最大的優(yōu)勢優(yōu)勢就是源代碼十分多,不像JSP那樣很多封包的,大家一定要好好利用啊。
其次,就是大家可以加些群和論壇,有問題和高手請教下,說不準(zhǔn)會茅塞頓開,一個人閉門造車還是很累的。俗話說,獨樂樂不如眾樂嘛!以上只是個人初學(xué)php的感受,希望能對大家有所幫助。
php學(xué)習(xí)總結(jié)2
雖然PHP并非目前最火爆的編程語言,但隨著信息社會的發(fā)展,大量的PHP編程人員近期在劇增,再加上IT行業(yè)的崛起,讓學(xué)習(xí)編程的人能得到一個很好的就業(yè)機會,這時候我們想要快速地學(xué)習(xí)這門技術(shù),且能更好的融入這個行業(yè),我們下面應(yīng)該來學(xué)習(xí)以下的一些技巧。
其實我們想要成為一名真正的PHP程序員,并非學(xué)好PHP編程語言就行了,還需要了解更多的相關(guān)只是。
而我們要學(xué)習(xí)PHP第一步就是要學(xué)會如何在自己的電腦上安裝PHP的運行環(huán)境。
PHP程序員需要裝備的技能有:
MYSQL只有一門好的開發(fā)語言而不懂得數(shù)據(jù)庫,我們依然是寸步難行的!還好,我們有一樣開源、小巧的MYSQL!對于一個web開發(fā)人員來說,不能僅 僅懂得(填/刪/改/查—//update/select),為了讓我們的網(wǎng)站跑的更快、更順暢我們還要懂得mysql的優(yōu)化。沒錯!這個時候,視圖、索引會幫你完成你想要的結(jié)果。
Apache 你要學(xué)會配置Apache
Javascript“后端語言群雄逐鹿,前端語言唯我獨尊!”沒錯,這就是Javascript在前端語言地位的真實寫照!想讓網(wǎng)站擁有絢麗的視覺效果,就離不開 Javascript。
Ajax 想讓網(wǎng)站擁有良好的客戶體驗,就離不開Ajax!縱然有時候,YUI,JQuery等就Javascript框架會幫助我們提高效率,但是,他們的基礎(chǔ)仍是Javascript!
算法、數(shù)據(jù)結(jié)構(gòu)按照常理來說,算法是PHP程序員的“靈魂”。對一名合格的程序員的第一要求的往往就是過硬的算法基礎(chǔ)。
要都精通上述技能,很難。當(dāng)然,你是PHP程序員,主要是負責(zé)PHP編程。但是你要明白,你一個后臺程序員,為了能開發(fā)出自己滿意網(wǎng)站,還必須跟前臺溝通。并且你要知道,你就是開發(fā)團隊的核心,所以,無論如何都要學(xué)習(xí)上述技能。
OK,上述技能都懂七七八八了,這樣就成了真正的PHP程序員了么?又錯了。
你還必須要有程序員必須有的品質(zhì)。
團隊精神和協(xié)作能力。通常項目開發(fā)都是一個團隊開發(fā),所以這是一個
學(xué)習(xí)和總結(jié)的能力。因為互聯(lián)網(wǎng)的技術(shù)日新月異,假如不能學(xué)習(xí)掌握新技術(shù),那么就要遭到淘汰。這是最最重要的硬性要求。
文檔習(xí)慣。缺乏文檔,一個軟件系統(tǒng)就缺乏生命力,在未來的查錯,升級以及模塊的復(fù)用時就都會遇到極大的麻煩。
規(guī)范化,標(biāo)準(zhǔn)化的代碼編寫習(xí)慣。代碼具有良好的可讀性,是PHP程序員基本的素質(zhì)需求。
需求理解能力。程序員需要理解一個模塊的需求,性能需求指標(biāo)中,穩(wěn)定性,并訪支撐能力以及安全性都很重要。
測試習(xí)慣
軟件研發(fā)作為一項工程而言,一個很重要的特點就是問題發(fā)現(xiàn)的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成后進行認真的測試,就可以盡量將一些潛在的問題最早的發(fā)現(xiàn)和解決,這樣對整體系統(tǒng)建設(shè)的效率和可靠性就有了最大的保證。
作為一名合格的PHPer 首先就是對PHP的熱愛,俗話說:“要做好一件事,要先去理解他,然后愛他。”PHP是一種很美妙的開發(fā)語言,你不需要再為定義一個變量的類型而猶豫不 定,PHP會自動判斷;你不需要在得到一個表單數(shù)據(jù)而聲明N多的函數(shù),一切都交給PHP吧!PHPer是一個極具挑戰(zhàn)性的工作,so,如果你熱愛挑戰(zhàn),喜 歡有挑戰(zhàn)性的工作,如果你已經(jīng)準(zhǔn)備好了,那么就加入吧。
php學(xué)習(xí)總結(jié)3
自從上周開始,我受其他中心邀請,前去給大四學(xué)生要做為期一個半月的PHP強化培訓(xùn)講師,對我來說雖說很簡單,但仍不可掉以輕心,在第一次和這個大四學(xué)生們交流時,我發(fā)現(xiàn)他們的計算機基礎(chǔ)知識真的很差,有的學(xué)生連基本的操作系統(tǒng)都不會做。當(dāng)初著實讓我頭痛了一把,一個半月,要把PHP課程講完,還要求每個學(xué)員都能獨立完成網(wǎng)站的開發(fā),最主要的是他們沒有基礎(chǔ)。
在第二天正式上課之前,我把我以前給自己學(xué)生培訓(xùn)的大綱做了很大的修改,決定以他們的實際情況為出發(fā)點,用最快的時間去講在學(xué)習(xí)PHP之前的基礎(chǔ)知識,并且用幽默快樂的課堂氣氛來提起同學(xué)們的學(xué)習(xí)興趣,通過這幾天的講課,感覺他們每個學(xué)員都撐握的不錯,每個學(xué)員都很努力地去學(xué)習(xí),用他們的話說,在我講這幾天,比大學(xué)里三個月講的內(nèi)容還多,他們接受起來很快,不愧是大學(xué)生,所以我現(xiàn)在有信心能把他們教好。我不敢保證100%,但80%能成為網(wǎng)站程序員是沒有什么問題。
還有一個月的課程要給他們講,所以我除了忙自己的公司外,還要兼著給大學(xué)生們講課,雖然我自己累點,但我能看到希望,最近有不少想學(xué)網(wǎng)站,學(xué)SEO學(xué)員咨詢,覺得我的技術(shù)還是很牛的,其他也沒有什么,我用十年的時間學(xué)習(xí)和工作都是以網(wǎng)站建設(shè),網(wǎng)站維護為主的,只是近年才開始做講師,但對我最大的收獲,就是學(xué)員學(xué)有所成。
php學(xué)習(xí)總結(jié)4
在來這里參加PHP培訓(xùn)班之前,我自學(xué)了五個月的PHP,天天在琢磨課本上的那些看不懂的代碼,照著書上寫了很多代碼,可測試運行,總是報錯,可又不知道自己錯在什么地方。心里非常焦躁,也受到了打擊。后來經(jīng)朋友的介紹北京恒博教育的課程是以實用為主,除了講解理論知識外,更注重的是實際應(yīng)用,老師們都是三十歲以上,在網(wǎng)站建設(shè)行業(yè)里有十幾年工作經(jīng)驗了,我那朋友也是在這里學(xué)習(xí)的,于是我來到了北京那個恒博教育網(wǎng)站培訓(xùn)基地并且參加了由黃老師主講的PHP培訓(xùn)課程,黃老師先給我們講了學(xué)習(xí)PHP的重點、學(xué)習(xí)PHP的方法、學(xué)習(xí)PHP的步驟。感覺和課本上大不一樣,他是先用一兩天的時間講語法基礎(chǔ),然后就直接講PHP和數(shù)據(jù)庫的操作,等大家會做簡單的網(wǎng)站之后,再接著講一些常用的函數(shù),和更高級的用法,用黃老師的話說:“先讓大家了解整個網(wǎng)站的制作,然后再講更詳細的,比如一些系統(tǒng)函數(shù),這樣學(xué)員在以后的學(xué)習(xí)中知道學(xué)的那些點怎么應(yīng)用到網(wǎng)站開發(fā)中來”。
雖然在這里上課的時間比大學(xué)的多,而且緊湊,但在這里看到了大學(xué)里沒有的學(xué)習(xí)風(fēng)氣,在濃厚的學(xué)習(xí)氣氛中大家也把黃老師的講解內(nèi)容完成的很好,我也從黃老師的講解中學(xué)到了很多有用、有趣的知識,授課內(nèi)容也讓我耳濡目染。
他根據(jù)我們的實際情況,告訴他了一些重點、一些方法、指導(dǎo)我們進行實戰(zhàn)開發(fā),開發(fā)項目由小到大,由簡至難,慢慢深入。將所有重點理論,全部貫穿于項目的開發(fā)之中。這樣理論記的深刻,項目開發(fā)也水到渠成。結(jié)果一個月不到,CMS會做了,還做了一個自己的博客,另外還參與了一個網(wǎng)上商城的開發(fā)。
一個人自學(xué),是孤獨的、無助的。在我們PHP培訓(xùn)班,你隨時可以詢問老師你遇到的問題。也可以和同學(xué)們隨時交流問題和心得,現(xiàn)在想想,以前選擇自學(xué)PHP有點是在浪費時間,會走很多的彎路,常常在自學(xué)中遇到問題,可自己很難能解決,再加上某些課本上的誤導(dǎo),(后來在黃老師的指導(dǎo)下才知道課本上有很多的地方是錯誤的)更是困難。
現(xiàn)在我已經(jīng)工作兩個月了,薪水還是可以的,在此我奉勸各位想自學(xué)技術(shù)的同胞們,最好是找一個專業(yè)的老師帶著你,否則真的自學(xué)很浪費時間。
php學(xué)習(xí)總結(jié)5
我想在講述自己的學(xué)習(xí)方式前,對那些期望能從我的文章中獲得有用信息的人說一句心里話:
我的文章不會對您的學(xué)習(xí)起到實質(zhì)性的作用,您能否成功,還得靠自己的,堅持,堅持,再堅持,就是步入成功的不二法門。
我先把我自己學(xué)習(xí)PHP的過程做一下概括:
。1)熟悉HTML/CSS/JS等網(wǎng)頁基本元素,完成階段可自行制作完整的網(wǎng)頁,對元素屬性達到熟悉程度
(2)理解動態(tài)語言的概念,運做機制,熟悉PHP語法
。3)學(xué)習(xí)如何將PHP與HTML結(jié)合起來完成簡單動態(tài)頁面
(4)接觸MYSQL,開始設(shè)計數(shù)據(jù)庫程序
(5)不斷鞏固,摸透大部分PHP常用函數(shù),并可理解OOP,MYSQL優(yōu)化,以及模板
。6)完成一個功能齊全的動態(tài)站點
我的這套線路可能跟許多學(xué)習(xí)PHP的愛好者不謀而合,這也算是一個循序漸進的學(xué)習(xí)過程,不過新手不要看到上面的概括就以為學(xué)習(xí)蠻簡單的,默默在此不得不對您稍微潑一下冷水,任何東西其實都不簡單,即使是小吃部的燒餅也不是一下子就會做成的。
我先解釋一下我的學(xué)習(xí)思路。
首先,理解網(wǎng)站這一概念之后不難看出,任何網(wǎng)站都是由網(wǎng)頁組成的,也就是說想完成網(wǎng)站,必須先學(xué)會做網(wǎng)頁,因此必須要掌握了HTML,才能為今后制作網(wǎng)站打下基礎(chǔ)。
在學(xué)習(xí)HTML中我想邊學(xué)邊做是最有效的方式,當(dāng)然這一方式對于學(xué)習(xí)PHP同樣是最有效的。
HTML中的任何元素都要親自實踐,只有明白了什么元素會起到什么效果之后,你才會記憶深刻,而一味的啃書,絕對是不行的,我想大部分新手之所以覺得概念難學(xué),大部分是一個字“懶”,懶是阻止進步的最大敵人,所以克服掉懶的習(xí)慣,才能更快的學(xué)好一樣?xùn)|西。
也許您在學(xué)習(xí)PHP的時候只想盡快的開發(fā)一個網(wǎng)站,也就會想我做網(wǎng)站,干嘛要學(xué)什么網(wǎng)頁這些小兒科?不難看出,眼高手低的新手不在少數(shù),這種思想無疑于建造空中樓閣,你不建地基,何來的房頂呢?
OK,掌握靜態(tài)網(wǎng)頁的制作技術(shù)是學(xué)習(xí)開發(fā)網(wǎng)站的先決條件,這一點就講到這里,因為這篇文章不是教程文章,也就不對技術(shù)進行深入的刨析了。
我假設(shè)你目前已經(jīng)可以完成一個靜態(tài)頁面了,當(dāng)然,做的好看難看是另外一說,皮皮我的第一個網(wǎng)頁也沒好看到哪去,但是“孩子”再丑,咱們做“爹媽”的也不能嫌棄不是?這畢竟是咱的成果。
那么咱們就開始學(xué)習(xí)動態(tài)語言的概念吧,剛一接觸動態(tài)語言,可能很多人都會蒙了,怎么這亂七八糟的東西,在網(wǎng)頁里顯示的時候卻是另外一碼事?其實這并不算亂七八糟,你寫的HTML代碼不也一樣是一堆堆的字符嗎?畢竟,代碼并不是作為直接輸出的,而是經(jīng)過處理的,說白了,HTML是經(jīng)過HTML解析器,而PHP當(dāng)然也就通過PHP解析器了,跟學(xué)習(xí)HTML一樣的道理,想讓任何的解析器完成操作,就必須使用它們專用的語法結(jié)構(gòu),所以PHP長相奇怪也就不足為奇了。
對于PHP的理解是新手最難邁過的一道門檻,不過你應(yīng)該感到幸運的是PHP已經(jīng)最大極限的為了新手而努力了,如果你學(xué)過其他的語言,也許會覺得PHP的確相當(dāng)?shù)暮唵,但是如果你之前什么都沒學(xué)過,那么阿彌陀佛,硬著頭皮琢磨吧。
書過三遍自然熟,這個簡單的道理告訴我們,即使你理解不了PHP,但是也必須先跟它混個臉熟,看,一遍遍的看,看的同時一邊琢磨,一邊按照它所教的打代碼,即使你搞不清楚那些代碼到底是干嘛的,但是起碼你應(yīng)該找找感覺。
在一段掙扎之后,聰明的你,顯然已經(jīng)逐漸的開悟了,慢慢的理解了編程的概念,那么祝賀你,你已經(jīng)邁出了成功的第一步。
搞清楚HTML和PHP的概念,那么PHP和HTML混合編程應(yīng)該不成問題,在這期間,你完全可以讓PHP給你算算 一加一等于幾,然后在瀏覽器輸出,不要覺得幼稚,這的確是跟阿波羅登月一樣,你打的是一小段代碼,但是對于你的編程之路,可是邁出了一大步。∨d奮吧?但是不得不再給你潑點冷水,您還是菜鳥一個。
高興一段時間就必須繼續(xù)努力了,接下來就是學(xué)習(xí)數(shù)據(jù)庫了,MYSQL可算是PHP的黃金搭檔了,不過,雖然話是這么說,你也可能恨不得把MYSQL給生吞活剝了,因為這一行一列的東東簡直讓自己頭暈?zāi)垦!?/p>
頭暈歸頭暈,目眩歸目眩,你不可能吃飯的時候咬了自己一下舌頭就從此不吃飯了不是?放下畏懼,繼續(xù)努力,咱們是來征服它的,而不是被它征服的,振奮起來吧同志。
在一番搏斗之后,你終于理解了數(shù)據(jù)庫的概念,而且讓你興奮不已的是你終于可以通過PHP來連接數(shù)據(jù)庫了,這期間你是怎么學(xué)會的,我們不去考證了,但是事實證明,你已經(jīng)可以了。
學(xué)會了PHP和數(shù)據(jù)庫的你,無疑是左手拿著MOTOLOLA右手拿著NOKIA,要多瀟灑,有多瀟灑,哈哈,終于學(xué)會了,但是可能這個時候,又會有人不經(jīng)意的拍拍肩膀?qū)δ阏f:哥們,別高興的太早,你還是菜鳥,離學(xué)會還差著一大截呢!
等到你發(fā)奮努力的學(xué)會了用PHP成功的插入,刪除,更新數(shù)據(jù)的時候,顯然,你已經(jīng)距離成功指日可待了。
這個時候的你也許是這種狀態(tài):
你會HTML嗎?會,我能編好幾個大表格排板的網(wǎng)頁啦!
你會PHP嗎?會,我會把一加一的運算寫在函數(shù)里,然后調(diào)用啦!
你會MYSQL嗎?會,我會把我的信息在數(shù)據(jù)庫里插入刪除啦
那,接下來你該怎么做呢?我覺得,小試一下身手,大概是沒問題了,那么交給你個任務(wù),做個留言本吧,這和HELLO WORLD有一比!^_^,同是新手面臨的第一道關(guān)。
花了一段時間,你終于學(xué)會把表單的數(shù)據(jù)插入數(shù)據(jù)庫,然后顯示出來了,應(yīng)該說一個程序的雛形已經(jīng)誕生了。
但是,你可能瞅瞅東,看看西,人家這個編論壇,那個CMS,還有那啥CRM,我啥時候?qū)懸粋呢?
不要急,可以說你的馬步已經(jīng)扎的差不多了,接下來就要開始練把勢的時候了,如果有條件的話,用筆或者打印一個簡易的PHP手冊在身上,時不時的摸出來看看,記得,去WC也不能放過(^2^)。
再有條件的話,買本書看看吧,《PHP+MYSQL WEB開發(fā)(第三版)》號稱圣經(jīng)級,(也許是個不錯的選擇(聲明:作者沒給我啥好處費,我也不是書托,隔著大老遠,我連他老兄的面都沒見過的說—_—)
鞏固了自己的知識,熟悉了PHP和MYSQL開發(fā)的要領(lǐng)之后,再回頭看你寫的那個留言本,你也許會懷疑那真的是你寫的嗎?當(dāng)然,如果屋里還有鬼的話,也許是它寫的—_—
這個時候,你的留言本應(yīng)該加入注冊以及分頁功能了,而如果你更強的話,UI(用戶界面)也可以加強,完成之后,感覺是不是特有成就感?不管怎么樣,咱好歹是寫了一個動態(tài)網(wǎng)站程序了,放在自己的網(wǎng)站上耍耍吧,讓好朋友來看看,嘿,看咱寫的多棒,然后再在網(wǎng)上宣傳一下。
幾天之后你再打開留言本,哎?哇,一下彈出N多頁面!很明顯,你的留言本并沒有做好安全防范,被人用JS代碼小小的耍了一下,我很同情你這個時候的感受,但是沒有別的辦法了,繼續(xù)努力吧!
你發(fā)奮努力,熟悉了安全方面的問題,然后又設(shè)計了一些程序,感覺還不錯。
那么接下來,這就算學(xué)會啦?NO,NO,NO,還早呢,你至盡還沒碰過OOP之類的吧?模板呢?
恩,學(xué)!加緊學(xué)呀學(xué),學(xué)會了這些之后,你又學(xué)會了生成靜態(tài)網(wǎng)頁,現(xiàn)在你應(yīng)該接觸一下XML了,恩,XML也了解了,那么AJAX你也得接觸接觸吧?AJAX完了。。。。然后......
總而言之,你絕對不會發(fā)現(xiàn)你全部都學(xué)會了,一些真正的強人總會搞出新玩意來丟給你,你不學(xué)就落后了,也印證了前人的經(jīng)驗,果然是學(xué)無止境!
我想通過我的一番YY,你也應(yīng)該大致熟悉了一些學(xué)習(xí)過程,也許我的過程和你的有些出路,但是不管怎么樣是殊途同歸,我寫這么多,也只是給大家一個借鑒的機會,至于好與不好,默默不敢打包票^0^
看完之后你發(fā)現(xiàn),羅嗦這么多,對我一點用處沒有啊,我知道該怎么學(xué),但是我想如何才能更快的學(xué),一周速成,啊不,24小時速成那種,皮皮你有沒?
我。。。。。。。我沒有,但是2分鐘之內(nèi)把你扁進醫(yī)院里,我倒是有把握—_—
學(xué)東西,永遠不要妄想有速成這一說,告訴你了一個方式,但是缺少努力這一環(huán)節(jié),那也是白搭。
但是有一點我可以給你保證的就是,你學(xué)會了PHP,那么學(xué)其他的語言,肯定速成,反過來也一樣,如果你之前學(xué)過其他的語言,那么學(xué)PHP肯定快。
不過語法好學(xué),但是怎么用語法來實現(xiàn)每個人都有每個人的方式,幾乎是各有千秋。然而借鑒別人成功的代碼,絕對是有益無害,因此,多看那些經(jīng)過千錘百煉凝出來的經(jīng)典代碼,是進階的最好方法。
講了這么多,無非是想說:學(xué)習(xí)PHP不僅要掌握方法,更多的是付出汗水,我不希望看到中途放棄的人,相信自己,相信自己的選擇,更要相信自己的能力,如果自己想放棄,一點的話,就自己抽自己一個嘴巴,然后大吼:別人可以,我為什么就不可以?(是不是有點閻羅教練的味道,默默的確是電影看多了,抽嘴巴是會痛的,各位其實明白這個道理了就行了)
另外要叮囑各位的是,抵御誘惑,ASP/PHP/JSP/。NET的對比也許會讓你無所適從,你也許學(xué)了一半PHP,又開始打C#的主意,或者有人說JA很強,這個時候的你絕對不能動搖,哪怕你真想學(xué),也得學(xué)會了PHP。然后再學(xué),見異思遷是最不可取的,狗熊掰玉米就是這個道理,如果經(jīng)常中途放棄,只能是一無所獲,還浪費了N多的時間和經(jīng)歷,得不償失,最重要的是,你會被別人瞧不起,沒有人會喜歡和見異思遷的人交朋友,因為這種人太不安分,太不可靠,
因此,你必須要強迫自己完成自己的目標(biāo),哪怕可能會很難受,也得堅持,毅力就是這么鍛煉出來的。
php學(xué)習(xí)總結(jié)6
其實我也是一樣很新的新手,上PHP100學(xué)習(xí)視頻并在論壇里學(xué)習(xí)其實也就是一個月前的事.雖然早在8月份花過一個星期看完w3school的PHP教 程,了解了許多PHP知識.但始終是缺乏一個與眾多朋友學(xué)習(xí)和交流的平臺,所以一下子在幾周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100視頻和論壇,不僅可以系統(tǒng)地學(xué)習(xí)下PHP,更可以和很多朋友一起學(xué)習(xí)成長這更是件好事.
在php100視頻中學(xué)到了許多,而 論壇中看帖和回帖也更讓我鞏固了學(xué)習(xí)的知識并讓我學(xué)到了很多,這不僅不會讓我又把PHP知識快速忘記(因為工作中用是ASP,而PHP不會在工作中用,所 以忘得快),反而在取得進步的同時,我也能幫助一些人,這也是一樣是學(xué)習(xí)勝利的過程,我喜歡并享受其中.
以下是我上論壇以來的回復(fù)總結(jié),將不斷持續(xù)總結(jié).希望有利于與我一樣的新手一起成長.
首先來個,題前語:
任何的學(xué)習(xí),都需要自信,再新的新手也應(yīng)該拋棄心中的恐懼,有時關(guān)鍵在于你心平下來,踏入學(xué)習(xí)后,你將慢慢化開迷惑,獲得信心,贏取自信!讓我們共同進步.
----------
==========
Undefined index問題
是運行的時候出現(xiàn)類似:Notice: Undefined index: action in D:wampwwwadd.php on line 3 的
原因:
可詳參見此帖:http://bbs.php100.com/read.php?tid=15843&page=1#138857
是 php 配置的事情
這個錯誤是因為 php 頁面中的`變量沒有初始化而導(dǎo)致的!
可以通過設(shè)置PHP.INI搞好,
也可以在變量前面 加上一個 @ 就可以解決這個地方的問題了!
如這里指示第三行
Notice: Undefined index: action in D:wampwwwadd.php on line 3
那么找到第3行加上@
if (@$_GET['action']=='save') {
你再運行下,發(fā)現(xiàn)還有提示,但行號變了,那么你再在行號對應(yīng)的未初始化的變量前加@即可解決
一勞永逸的辦法是在 php.ini 中的 error配置下錯誤顯示方式
估計你里邊的error_reporting=E_ALL
把error_reporting這個設(shè)為
error_reporting = E_ALL & ~E_NOTICE
別忘了改動后,重啟下APCHE服務(wù)器,才會生效
這樣,以后就不用在這種情況下加@了
-
具體參考下這個設(shè)置下http://edu.codepub.com/20xx/0617/6463.php
----------
==========
遇到頁面明確提示你錯誤的,并有顯示如何錯的,建議先把語句復(fù)制部分重點詞句或全部語句到百度或
google,更快速讓在你排查錯誤找到方法.其實這也是一種高效有益的學(xué)習(xí)方法,畢竟在工作中,遇到些沒
遇過的新問題,有時都需要借助網(wǎng)上的資源給自己靈感和助力,本人就一天不下幾十次用百度搜索.
如程序中遇到諸如含提示:
顯示的錯誤為:
Parse error: syntax error, unexpected $end in D:wampwww estlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作為關(guān)鍵詞到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句舉例的錯誤是因為:短標(biāo)簽沒有打開.解決方法是打開php.ini把short_open_tag短標(biāo)簽
打開,重啟服務(wù)即可
----------
==========
提示的時候,有時順便把代碼帖上帖子是必要的,這樣才能快速地在別人的幫助下問題得到解決
----------
==========
對單引號和雙引號有迷惑,大家可以看這篇文章解下惑:
----------
==========
在調(diào)試程序時,經(jīng)常要用到echo 你的sql語句來,檢查傳值后,sql變成了什么樣的情況,以便排查錯誤.
----------
==========
向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新紀(jì)錄。
語法
INSERT INTO table_name VALUES (value1, value2,....)--此種情況是需要按你表中所有字段的順
序全部value填上!
您還可以規(guī)定希望在其中插入數(shù)據(jù)的列:
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) --張老師明確建
議用此種方法!
----------
==========
有人疑惑,$_POST或$GET取得時的引號問題:其實是要不要引號,單引號或雙引號都是沒有問題的.
如, $_POST[name]和$_POST['name']和$_POST["name"]都是在windows下一樣的,在linux下情況具體沒
用過,不知道,還望高手告知.
----------
==========
針對多數(shù)人的留言板課程中許多問題(如, into存不進數(shù)據(jù)問題)的總結(jié):
1.檢查你數(shù)據(jù)庫表的結(jié)構(gòu)是否正確,如id是否設(shè)為自增
2. into語句是否正確,如單詞是否正確, into ... values ...
3.是否將`(反斜點,在1鍵前)號和'(引號)是否使用位置正確,正確的方法是:`應(yīng)該放在表和字段邊,而'
是放在字符串型(或者說是非數(shù)字型)的值邊上
4.檢查你的各語句,是否在結(jié)尾將分號(;)正確結(jié)束
5.檢查你的submit表單項的name值是否你判斷的取值,如
value="提交">時,你的判斷是否提交應(yīng)是 if ($_POST[submit]){...} ;當(dāng)你的是
type="submit" name="othername" value="提交">時,你的判斷是否提交應(yīng)是 if ($_POST
[othername]){...}
6.檢查你的$_POST是否大寫,當(dāng)你寫成$_post是不行的,因為$_GET,$_POST等,都是PHP系統(tǒng)環(huán)境的硬性用
法
7.用echo 輸出你的sql檢查傳值情況
8.檢查你的短標(biāo)簽是否打開
9.注意你的method是get還是post
10.檢查你的表單相關(guān)單詞或引號是否書寫正確.很多莫名其妙的問題,多是細節(jié)問題.要小心查對才能看
出來.
----------
sql語句中表名和字段名在windows的情況下是可以不加小斜點(鍵盤左上角1鍵前的那個點鍵)的,但聽說
在linux中不加會引出些問題,兼容的寫法是有小斜點.
如:windows下:
$sql="select * from table "
和
$sql="select * from `table` "
是效果一樣的
再次重點提示是:
`(反斜點,在1鍵前)號和'(引號)使用位置,正確的方法是:`應(yīng)該放在表和字段邊,而'是放在字符串型(或
者說是非數(shù)字型)的值邊
----------
==========
php100第十三講的page.PHP中的翻頁顯示信息有問題的解決方法:
因為頁面沒有取值到URL值的page,所以在函數(shù)內(nèi)的page會一直是1,所以會一直是第1頁的數(shù)據(jù)
解決方法,就是在調(diào)用函數(shù)前把page取得就好了!函數(shù)里會把取到的page值作為全局變量傳入函數(shù)使用的
了!
include("conn.php");
$nump=mysql_query("SELECT * FROM `test`");
$total=mysql_num_rows($nump);
//調(diào)用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數(shù)),使用本頁URL(默認,所
以省略掉)。
$page=$_GET[page]; //------------------------------在這里加入這行就OK了!
_PAGEFT($total,5);
echo $pagenav;
$query=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg ");//---見下面 while($row=mysql_fetch_array($query)){
echo "
".$row[name]." | ".$row[sex];
}
以上的
調(diào)試方法,其實你只要學(xué)下張老師把sql語句輸出來看下,你就知道是怎么回事了!
echo $sql="SELECT * FROM `test` limit $firstcount,$displaypg ";
$result=mysql_query($sql);
----------
==========
分頁有問題的朋友,不妨看下如下:
關(guān)于分頁,這有一篇論壇朋友的學(xué)習(xí)心得,學(xué)習(xí)下,你也許有所得:
另有一篇本人轉(zhuǎn)發(fā)上去的分頁講解:
----------
php學(xué)習(xí)總結(jié)7
$_GET[string] 的介紹,Isset() 和empty()的介紹,數(shù)據(jù)庫數(shù)據(jù)類型,
1.$_GET[string]的介紹
2.$_GET[string]
他和$_POST 的區(qū)別在于,當(dāng)form method=“get”的時候,用來傳值,
點擊下submit后,URL轉(zhuǎn)到了接受值的php頁面。但是URL 不是這個頁面的--1.php。而是自動生成的URL。
顯示的是下面的URL:php?控件名(myname是文本框的控件名)=用戶輸入的值。
所以說用這個不安全。
3.Isset() 和empty()的區(qū)別
Isset()檢查變量值是不是設(shè)立了。 Check the variable is set and exists.
Empty()檢查變量值是不是空。 Check if the variable has contents.
對于empty(),空有7種可能,Null,0,‘’(空字符串),array(),false,遇到出現(xiàn)上面的7種情況返回true。
兩個返回的都是布爾值。
一般情況下用empty()檢查表單中戶輸入的是否是空值。
用if(!Empty($var))檢查;
。 "0",0.0
primary key 主鍵
4. MYSQL 命令:create table
命令:注意 column name column type中間沒有逗號,只是空格。
看下格式
問題:Cookie 的用法
已經(jīng)試過
5. Setcookie()用于服務(wù)端在客戶端創(chuàng)建cookie。
里面的兩個值是必須的。Name和value。字符串。
我自己弄的cookie。Setcookie(‘username’,‘a(chǎn)dmin’);
在IE9 中按f12 進入開發(fā)者工具中看緩存的cookie信息。
6. Cookie 的默認時間是當(dāng)你關(guān)掉瀏覽器時就消失。
可以用時間戳time()+秒表示時間。如:time()
+(7*24*30*60)表示7天存在。 讀取cookie。用$_cookie[]讀取。方括號里面是string 的cookie名字。
例子:
7. mysql 數(shù)據(jù)類型:用于數(shù)據(jù)庫中的table下的數(shù)據(jù)的創(chuàng)建
8.
注意下:char()和 varchar() 的區(qū)別: Char(2)只能存一個字符。而且一定是2個。
Varchar(60)表示能存60個字符。不一定是60個。 一般用這種。
Date ,日期格式
time,時間格式
datetime表示日期和時間格式。
Dec()表示:DEC(m,n)
M表示總的位數(shù),n表示小數(shù)點后的位數(shù)。
m is the total number of digits and n is the number of digits after the decimal point. Say, you want to store some numbers like the format 9999.9099999. Here the value of m is 11 and that of n is 7.
DATE - A date in YYYY-MM-DD format, 例如: 1973-12-30.
DATETIME -in YYYY-MM-DD HH:MM:SS 1973-12-30 15:30:00. TIMESTAMP - This looks like the previous DATETIME format, only without the hyphens between numbers; 3:30 in the afternoon on December 30th, 1973 would be stored as 19731230153000 ( YYYYMMDDHHMMSS ).
TIME - Stores the time in HH:MM:SS format.
YEAR(M) - If the length is specified as 4, YEAR can be 1901 to 2155. The default length is 4.
問題:If.。。Elseif。。。Else
else ifallows us to keep evaluating using if statements as many times as needed. 可以把elseif看做是另外一個if。
Use the if....elseif...else statement to select one of several blocks of code to be executed. Syntax
1 if (condition)
23code to be executed if condition is true;
4
5 elseif (condition)
6
7code to be executed if condition is true;
8
9 else
10
11code to be executed if condition is false;
問題: php連接mysql()
回答:四個函數(shù):
mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().
相關(guān)語法: mysql_connect(),連接服務(wù)器。
resource mysql_connect(string $server,string$username, string$password). 返回值:指定服務(wù)器的link identifier。或者未成功就是false。
然后用這個連接mysql中的數(shù)據(jù)庫
bool mysql_select_db( string $database_name [, resource $link_identifier = NULL ] .
Mysql_select_db() 用于連接mysql服務(wù)器上的數(shù)據(jù)庫。下面的mysql_query()用來在這個數(shù)據(jù)庫中執(zhí)行。前面$a=Mysql_select_db()錯誤。 mysql_query()語法:resource mysql_query( string $query [, resource $link_identifier = NULL ] ) 用于給數(shù)據(jù)庫發(fā)送命令。返回resource,是個結(jié)
php學(xué)習(xí)總結(jié)8
調(diào)試/*………*/ //…….#..........
插入時考慮清楚字段類型避免插入后出現(xiàn)缺值,亂碼
@ 屏蔽錯誤or die 條件顯示
以前學(xué)習(xí)php類的總結(jié):
1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實現(xiàn)新的重載
1.1 在子類中調(diào)用父類的覆蓋部分可以使用 父類名稱::方法名稱();
2.final 只能定義類和方法,不能使用final定義成員屬性,因為final是常量的意思,在php里定義常量使用的是define函數(shù)
2.1 final關(guān)鍵字標(biāo)記的類不能被繼承
2.2 final關(guān)鍵字標(biāo)記的方法不能被子類重寫
3.const是一個定義常量的關(guān)鍵字,在php中定義常量使用的是define()函數(shù),但是在類里定義常量使用的是“const” 這個關(guān)鍵字
3.1在程序中不能修改它的值。
3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關(guān)鍵字,但不使用"$"符號,也不能使用對象來訪問。
4.static關(guān)鍵字可以描述類中的成員屬性和成員方法
4.1 static 的成員屬于類,而不屬于任何對象,
4.2 static的成員是在類第一次被加載的時候分配的空間,其他類無法訪問的,只對類的實例共享,能一定程度對類該成員形成保護
4.3 靜態(tài)成員放到了“初始化靜態(tài)段”,在類第一次加載的時候放入的,可以讓堆內(nèi)存里的每個對象共享。所以在靜態(tài)方法里,可以使用這個方法所在的類的“類名”,也可以使用“self”來訪問其他靜態(tài)成員!皊elf”代表這個靜態(tài)方法所在的類。
4.3.1 在類里的靜態(tài)方法是不能訪問類的非靜態(tài)成員的。
4.3.2 在類的非靜態(tài)方法里可以訪問靜態(tài)成員:”self:成員屬性“;
4.4類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣,類似于全局函數(shù)。
4.5 在類內(nèi)函數(shù)訪問靜態(tài)變量時前面加self::靜態(tài)函數(shù)
4.6 靜態(tài)變量可以在類外直接訪問,訪問方法是類名::靜態(tài)變量
4.7 靜態(tài)函數(shù)可以在類外直接訪問,訪問方式是類名::靜態(tài)函數(shù)
4.8 在類內(nèi)靜態(tài)函數(shù)訪問另一個靜態(tài)函數(shù)時使用 類名::靜態(tài)函數(shù)名
4.8.1 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時,訪問方式是類名::靜態(tài)變量
4.8.2 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時,訪問方式除了是類名::靜態(tài)變量外,還可以使用self::靜態(tài)變量
4.9 在類內(nèi)靜態(tài)函數(shù)訪問另一個靜態(tài)函數(shù)時除了使用 類名::靜態(tài)函數(shù)名外,還可以使用self::靜態(tài)函數(shù)名,也可以直接調(diào)用靜態(tài)函數(shù)
4.10 靜態(tài)函數(shù)內(nèi)不能訪問非靜態(tài)變量
4.11 在類內(nèi)靜態(tài)函數(shù)不能使用$this->非靜態(tài)函數(shù)名訪問非靜態(tài)函數(shù),可以使用self::非靜態(tài)函數(shù)名
4.12
5.類里的”$this“,在php里面提供了一個本對象的引用$this,每個對象里面都有一個對象的引用$this來代表這個對象,完成對象內(nèi)部成員的調(diào)用。
5.1 $this 就是對象內(nèi)部代表這個對象的引用。
6.類里"self",self 和$this相似,只不過self是代表這個靜態(tài)方法所在的類,所以在靜態(tài)方法里,可以使用這個方法所在的類的”類名“,也可以使用"self"來訪問其他的靜態(tài)成員,通常使用后者”self::成員屬性“。
7.類里”__“開頭的函數(shù)名
7.1類里”__“開頭的函數(shù)名都是在某一時刻不同情況下自動調(diào)用執(zhí)行的方法。
7.2__toString()方法也是自動被調(diào)用,是直接輸出對象引用時自動調(diào)用的。比如"$p = new Person()",直接用echo輸出$p會產(chǎn)生錯誤,如果在類里定義了__toString()方法,再用echo直接輸出對象引用的時候就不會產(chǎn)生錯誤了
8.對象串行化
8.1 __sleep()方法,在對象串行化的時候,會調(diào)用一個__sleep()方法來完成一些睡前的事情,__sleep()函數(shù)不接受任何參數(shù),但返回一個數(shù)組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時被忽略,如果沒有__sleep()方法,php將保存所以屬性.
8.2 __wakeup()方法,在重新醒來時,即由二進制串重新組成一個對象的時候,則會自動調(diào)用__wakeup(),做一些對象醒來就要做的動作。
8.3 有時你可能需要一個對象在反串行化后立即執(zhí)行. 為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.
9. protected 成員能被同個類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實例直接訪問。protected and public 可以動態(tài)綁定
10. private 大部分private屬性仍然可以被外部代碼共享. 解決方法是用一對public方法,一個是get(獲取屬性的值),另一個是set(設(shè)置屬性的值).
10.1 private 不可以動態(tài)綁定。Private成員只存在于它們所在的類內(nèi)部. 不像public和protected成員那樣,PHP模擬靜態(tài)綁定.
10.2 什么時候用到private?private成員只有當(dāng)你不想讓子類繼承改變或特殊化父類的行為時才用到,這種情況比你想像的要少, 通常來說,一個好的對象分層結(jié)構(gòu)應(yīng)當(dāng)允許絕大多數(shù)功能被子類特殊化,改進,或改變—這是面向?qū)ο缶幊痰幕A(chǔ)之一。一定的情況下需要private方法或變量,例如當(dāng)你確信你不想允許子類改變父類中的某個特定的部份。
11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個地方但不起作用),它與一般方法不同—沒有任何代碼. 如果類中存在一個或更多抽象方法, 那么這個類就成了抽象類. 你不能實例化抽象類. 你必須繼承它們,然后實例化子類. 你也可以把抽象類看成是子類的一個模板.
如果你覆寫所有的抽象方法, 子類就變成一個普通的類. 如果沒有覆寫所有方法, 子類仍是抽象的. 如果一個類中中包含有抽象方法(哪怕只有一個), 你必須聲明這個類是抽象的, 在class關(guān)鍵字前加上abstract. 聲明抽象方法的語法與聲明一般方法不同. 抽象方法的沒有像一般方法那樣包含在大括號{}中的主體部份,并用分號;來結(jié)束.
12.接口:如果你建立了一個只有抽象方法的類,你就定義了一個接口(interface). 為了說明這種情況, PHP中有interface 和implements關(guān)鍵字. 你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個接口. 例如, 你可以寫一個myClass implements myIterface. 這兩種方法可以依個人偏愛來選擇.
12.1 如果接口中出現(xiàn)非抽象方法.會報錯
12.2 接口中的方法默認是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.
12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態(tài)方法.
12.5 在接口中可以有常量,e.g.:
interface User{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace關(guān)鍵字給一塊代碼命名. 在這個代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個代碼塊. 引用靜態(tài)的類成員也是用相同的方法. 在命名空間內(nèi)代碼不需要聲明命名空間, 它本身就是默認的. 這種方法比添加前綴的方法好. 你的代碼可由此變得更加緊湊和可讀.
你可能想知道是否可以建立分層的(嵌套的)命名空間. 答案是不可以. 但你可以在命名空間名稱后加上冒號, 你可以再次調(diào)用在名稱中不包含冒號的變量,函數(shù)和類. 命名空間允許存在冒號,只要不是第一個字符和最后一個字符或接著另一個冒號. 命名空間的名稱中的冒號對于PHP來說沒有任何意義, 但如果你用他們來區(qū)分邏輯上的區(qū)塊, 他們可以很好地說明你的代碼中的父子(parent-child)關(guān)系.
14. __toString()打印對象會調(diào)用它的__toString方法.
15.不能實例化的類
//
//當(dāng)__construct()為public時可以實例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留給外部訪問.
class A{
private function __construct(){}
static function getClassA(){
return "這里是后門,可以通過這里進入類內(nèi)部..";
}
}
echo A::getClassA();
?>
15.2
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內(nèi)部返回實例.
class A{
private function __construct(){
echo "this is construction
";
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.
$a1 = A::getClassA();
$a2 = A::getClassA();
echo "$a1 的類是 ".get_class($a1)." , $a2 是 ".get_class($a1); if($a1 === $a2){
echo "
$a1 $a2 指向同一對象.";
}else{
echo "
$a1 $a2 不是一個對象.";
}
//this is construction
//this is construction
【php學(xué)習(xí)總結(jié)】相關(guān)文章:
2.如何學(xué)習(xí)PHP-PHP入門指導(dǎo)