




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PHP程序編譯中常見(jiàn)錯(cuò)誤信息分析及解釋.txt如果我窮得還剩下一碗飯我也會(huì)讓你先吃飽全天下最好的東西都應(yīng)該歸我所有,包括你!先說(shuō)喜歡我能死啊?別鬧,聽(tīng)話。有本事你就照顧好自己,不然就老老實(shí)實(shí)地讓我來(lái)照顧你!我們編寫(xiě)程序時(shí),無(wú)論怎樣小心謹(jǐn)慎,犯錯(cuò)總是在所難免的。這些錯(cuò)誤通常會(huì)迷惑PHP編譯器。如果開(kāi)發(fā)人員無(wú)法了解編譯器報(bào)錯(cuò)信息的含義,那么這些錯(cuò)誤信息不僅毫無(wú)用處,還會(huì)常常讓人感到沮喪。編譯PHP腳本時(shí),PHP編譯器會(huì)盡其所能報(bào)告它遇到的第一個(gè)問(wèn)題。這樣就產(chǎn)生一個(gè)問(wèn)題:只有當(dāng)錯(cuò)誤出現(xiàn)時(shí),PHP才能將它識(shí)別出來(lái)(本文后面對(duì)此問(wèn)題進(jìn)行了詳細(xì)描述。正是由于這個(gè)緣故,編譯器指出出錯(cuò)的那行,從表面上看來(lái)可能
2、語(yǔ)法正確無(wú)誤,或者可能是根本就不存在的一行!更好地理解錯(cuò)誤信息可以大大節(jié)省確定并改正錯(cuò)誤內(nèi)容所花費(fèi)的時(shí)間。因此,在本文中,我將努力闡明多種不同類(lèi)型的PHP報(bào)錯(cuò)信息,以及在開(kāi)發(fā)過(guò)程中如何正確理解各種報(bào)錯(cuò)信息的含義。本文中所講述的內(nèi)容與您所應(yīng)用的PHP的版本無(wú)關(guān),因?yàn)楸疚乃枋龅母鞣N錯(cuò)誤并不限定于某一特殊版本的特定錯(cuò)誤。另外我們假定您是一位初級(jí)或者中級(jí)程序員,并已經(jīng)從事編程工作有半年或一年的時(shí)間。編譯器的工作方式要搞清楚編譯器為什么會(huì)報(bào)告某一行上存在錯(cuò)誤,首先必須明確編譯器解析PHP代碼的機(jī)制。我并不打算在本文中對(duì)此進(jìn)行詳細(xì)論述,但是,我們將會(huì)討論一些更易于引發(fā)錯(cuò)誤的簡(jiǎn)單概念。變量聲明如果在一條語(yǔ)
3、句中聲明一個(gè)變量,具體方式如下所示:$variable = 'value'編譯器首先求出語(yǔ)句右半部分的值(即等號(hào)右邊的所有內(nèi)容。在一些編程書(shū)籍中,將此表示為語(yǔ)句的 RHS (右半部分。恰恰正是語(yǔ)句的這一部分常常會(huì)引發(fā)錯(cuò)誤。如果使用的語(yǔ)法不正確,就會(huì)出現(xiàn)解析錯(cuò)誤。解析錯(cuò)誤Parse error:解析錯(cuò)誤,unexpected T_WHILE in c:program filesapache groupapachehtdocsscript.php on line 19每次確定了前一錯(cuò)誤時(shí),解析錯(cuò)誤一個(gè)接一個(gè)地不斷出現(xiàn)。因?yàn)镻HP在第一個(gè)解析錯(cuò)誤之后就停止執(zhí)行腳本,調(diào)試并糾正這一系列
4、的錯(cuò)誤往往會(huì)讓人覺(jué)得特別厭煩。而且,解析錯(cuò)誤具有很少的信息,幾乎不報(bào)告錯(cuò)誤所在的行號(hào)。具體原因就是當(dāng)出現(xiàn)錯(cuò)誤時(shí),編譯器判定好幾行的語(yǔ)法看起來(lái)應(yīng)該是有效的,直至遇到無(wú)效的語(yǔ)法,最可能的情形就是表達(dá)式中使用了預(yù)定義的字詞,例如;while = 10; / Bad ? while 就是一個(gè)預(yù)定義字詞,不能分配給一個(gè)值預(yù)定義的字詞包括 while、function等,如果PHP使用 uses to evaluate your code. 您不能使用這些預(yù)定義字詞來(lái)命名變量,而且如果您非要這樣做的話,PHP就會(huì)報(bào)出更多的錯(cuò)誤,這是您無(wú)法忍受。關(guān)于這個(gè)問(wèn)題,下面的示例可能會(huì)對(duì)您有所幫助。請(qǐng)咨詢閱讀一下下面
5、所示的PHP 代碼: $b = somevalueif($b = somevalueprint Hello world!;?>錯(cuò)誤位于$b =一行(在語(yǔ)句的末端缺少分號(hào),所以錯(cuò)誤應(yīng)該是解析錯(cuò)誤:第3行缺少分號(hào)對(duì)吧?而不應(yīng)該依據(jù)解析器判定的:Parse error: parse error, unexpected T_IF in c:program filesapachegroupapachehtdocsereg2.php on line 4在第4行,if( 語(yǔ)句的語(yǔ)法是正確的。那么,編譯器是被什么給搞糊涂了呢?線索就是unexpected T_IF 部分。出現(xiàn) unexpected T_
6、?錯(cuò)誤時(shí),它所表示的含義為:編譯器發(fā)現(xiàn)在預(yù)定義字不應(yīng)該出現(xiàn)的位置出現(xiàn)。T_IF 代表 if(, T_WHILE 代表 while(, T_FOR 代表for(等。值得慶幸的是,一些錯(cuò)誤的原因也很簡(jiǎn)單:語(yǔ)句沒(méi)有使用分號(hào)(;結(jié)束,比如上面的示例。字符串中缺少引號(hào)。其他一些常見(jiàn)的錯(cuò)誤我見(jiàn)過(guò)的最常見(jiàn)的錯(cuò)誤就是,當(dāng)沒(méi)有使用大括號(hào)( 結(jié)束一個(gè)函數(shù)或者一個(gè)循環(huán)時(shí)出現(xiàn)的錯(cuò)誤,這很可能是最常見(jiàn),最讓人煩的錯(cuò)誤。具體代碼如下:function UselessFunction( for($i < 0; $i < 10; $i+將產(chǎn)生下列錯(cuò)誤:Parse error: parse error, unexp
7、ected $ in c:program filesapachegroupapachehtdocsereg2.php on line 9由于函數(shù) UselessFunction 沒(méi)有使用大括號(hào)( 來(lái)結(jié)束,PHP編譯器不斷查找表示結(jié)束的大括號(hào)直至到達(dá)文件末尾為止。因?yàn)榫幾g器未找到一個(gè)匹配的大括號(hào),就會(huì)報(bào)告文件末尾處有錯(cuò)誤。如果正確地反映了代碼的層次結(jié)構(gòu),錯(cuò)誤信息就會(huì)變得非常明顯。如果沒(méi)有標(biāo)明代碼的層次結(jié)構(gòu),那么最后要想查清楚到底忘記了什么也會(huì)變得幾乎是不可能的。所以,請(qǐng)記住,一定要標(biāo)明代碼的層次結(jié)構(gòu)。Tab鍵可以很容易地實(shí)現(xiàn)這一點(diǎn)。對(duì)后續(xù)的開(kāi)發(fā)人員來(lái)說(shuō),把握代碼框架并對(duì)其進(jìn)行修改也會(huì)更容易一些。
8、MySQL 錯(cuò)誤另一極其令人討厭的錯(cuò)誤信息就是最常見(jiàn)的MySQL錯(cuò)誤,這常常使 PHP新手感到頗為頭疼: Warning: Supplied argument is not a valid MySQL result resource in.上面所報(bào)告有錯(cuò)的一行可能是:while($row = mysql_fetch_array($result 參數(shù) $result并不是一個(gè)有效的資源。在英語(yǔ)中它表示因?yàn)椴樵兪?將無(wú)法處理mysql_fetch_array。任一查詢的語(yǔ)法無(wú)效(您應(yīng)該將查詢復(fù)制-粘貼到MySQL 控制臺(tái)參考來(lái)進(jìn)行測(cè)試,或者與數(shù)據(jù)庫(kù)的連接失敗(這種情況下您應(yīng)該再次檢查用戶名和口令等。防止錯(cuò)誤發(fā)生第一步,智能代碼器可采取以下幾步來(lái)消除下列錯(cuò)誤出現(xiàn):·在每一條語(yǔ)句的末尾處,不必考慮添加分號(hào)這應(yīng)該成為一種習(xí)慣。·總是要盡可能標(biāo)明代碼的層次結(jié)構(gòu),這可以使您能夠查看是否忘記在if 調(diào)用或函數(shù)末端等位置添加大括號(hào)。·請(qǐng)使用可突出顯示語(yǔ)法的編輯器(如 HTML-Kit。有了這類(lèi)編輯器的輔助,您就能確定是否忘記了添加引號(hào),是否缺少分號(hào)等。結(jié)論本文我們對(duì)PHP編譯器可報(bào)出的一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物流服務(wù)合同協(xié)議書(shū)樣本
- 2025排水系統(tǒng)修復(fù)工程合同
- 2025簽訂汽車(chē)租賃合同的注意事項(xiàng)
- 2025汽車(chē)維修服務(wù)合同模板
- 2025年度資產(chǎn)轉(zhuǎn)讓合同樣本
- 2025簡(jiǎn)易裝修房屋租賃合同
- 2024年膨化硝銨炸藥項(xiàng)目項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025商業(yè)大廈辦公室租賃合同模板
- 2025塑膠制品購(gòu)銷(xiāo)合同書(shū)樣本
- 2025物業(yè)營(yíng)銷(xiāo)中心裝修合同
- 消防安全監(jiān)督與檢查要點(diǎn)
- 【MOOC】《思想道德與法治》(東南大學(xué))章節(jié)中國(guó)大學(xué)慕課答案
- 《復(fù)雜網(wǎng)絡(luò)概述》課件
- 骨盆骨折圍手術(shù)期護(hù)理
- 2024年醫(yī)院職工獎(jiǎng)懲辦法實(shí)施細(xì)則范例(3篇)
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)《奧數(shù)競(jìng)賽試卷》
- 2024年吉林省吉林市中考化學(xué)真題含解析
- 地鐵運(yùn)營(yíng)管理
- 現(xiàn)場(chǎng)巡檢與安全檢查管理制度
- 鋼結(jié)構(gòu)光伏施工方案
- 【MOOC】影像技術(shù)學(xué)-東南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論