日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

正確理解PHP程序編譯時的錯誤信息

瀏覽:238日期:2024-02-06 15:12:06

我們編寫程序時,無論怎樣小心謹慎,犯錯總是在所難免的。這些錯誤通常會迷惑PHP編譯器。如果開發人員無法了解編譯器報錯信息的含義,那么這些錯誤信息不僅毫無用處,還會常常讓人感到沮喪。

編譯PHP腳本時,PHP編譯器會盡其所能報告它遇到的第一個問題。這樣就產生一個問題:只有當錯誤出現時,PHP才能將它識別出來(本文后面對此問題進行了詳細描述)。正是由于這個緣故,編譯器指出出錯的那行,從表面上看來可能語法正確無誤,或者可能是根本就不存在的一行!

更好地理解錯誤信息可以大大節省確定并改正錯誤內容所花費的時間。因此,在本文中,我將努力闡明多種不同類型的PHP報錯信息,以及在開發過程中如何正確理解各種報錯信息的含義。

本文中所講述的內容與您所應用的PHP的版本無關,因為本文所描述的各種錯誤并不限定于某一特殊版本的特定錯誤。另外我們假定您是一位初級或者中級程序員,并已經從事編程工作有半年或一年的時間。

編譯器的工作方式

要搞清楚編譯器為什么會報告某一行上存在錯誤,首先必須明確編譯器解析PHP代碼的機制。我并不打算在本文中對此進行詳細論述,但是,我們將會討論一些更易于引發錯誤的簡單概念。

變量聲明

如果在一條語句中聲明一個變量,具體方式如下所示:

$variable = 'value';

編譯器首先求出語句右半部分的值(即等號右邊的所有內容)。在一些編程書籍中,將此表示為語句的 RHS (右半部分)。恰恰正是語句的這一部分常常會引發錯誤。如果使用的語法不正確,就會出現解析錯誤。

解析錯誤

Parse error:解析錯誤,unexpected T_WHILE in c:program filesapache groupapachehtdocsscript.php on line 19

每次確定了前一錯誤時,解析錯誤一個接一個地不斷出現。因為PHP在第一個解析錯誤之后就停止執行腳本,調試并糾正這一系列的錯誤往往會讓人覺得特別厭煩。

而且,解析錯誤具有很少的信息,幾乎不報告錯誤所在的行號。具體原因就是當出現錯誤時,編譯器判定好幾行的語法看起來應該是有效的,直至遇到無效的語法,最可能的情形就是表達式中使用了預定義的字詞,例如;

while = 10; // Bad ? while 就是一個預定義字詞,不能分配給一個值

預定義的字詞包括 while、function等,如果PHP使用 uses to evaluate your code. 您不能使用這些預定義字詞來命名變量,而且如果您非要這樣做的話,PHP就會報出更多的錯誤,這是您無法忍受。

關于這個問題,下面的示例可能會對您有所幫助。請咨詢閱讀一下下面所示的PHP 代碼:

<?php $b = somevalue if($b == somevalue){ print Hello world!; } ?>

錯誤位于$b =一行(在語句的末端缺少分號),所以錯誤應該是解析錯誤:第3行缺少分號對吧?而不應該依據解析器判定的:

Parse error: parse error, unexpected T_IF in c:program filesapachegroupapachehtdocsereg2.php on line 4

在第4行,if() 語句的語法是正確的。那么,編譯器是被什么給搞糊涂了呢?線索就是unexpected T_IF 部分。出現 unexpected T_???錯誤時,它所表示的含義為:編譯器發現在預定義字不應該出現的位置出現。T_IF 代表 if(), T_WHILE 代表 while(), T_FOR 代表 for()等。

值得慶幸的是,一些錯誤的原因也很簡單:

語句沒有使用分號(;)結束,比如上面的示例。字符串中缺少引號。

其他一些常見的錯誤

我見過的最常見的錯誤就是,當沒有使用大括號( } )結束一個函數或者一個循環時出現的錯誤,這很可能是最常見,最讓人煩的錯誤。

具體代碼如下:

function UselessFunction() { for($i < 0; $i < 10; $i++){ }

將產生下列錯誤:

Parse error: parse error, unexpected $ in c:program filesapache groupapachehtdocsereg2.php on line 9

由于函數 UselessFunction 沒有使用大括號( } )來結束,PHP編譯器不斷查找表示結束的大括號直至到達文件末尾為止。因為編譯器未找到一個匹配的大括號,就會報告文件末尾處有錯誤。

如果正確地反映了代碼的層次結構,錯誤信息就會變得非常明顯。如果沒有標明代碼的層次結構,那么最后要想查清楚到底忘記了什么也會變得幾乎是不可能的。所以,請記住,一定要標明代碼的層次結構。Tab鍵可以很容易地實現這一點。對后續的開發人員來說,把握代碼框架并對其進行修改也會更容易一些。

MySQL 錯誤

另一極其令人討厭的錯誤信息就是最常見的MySQL錯誤,這常常使 PHP新手感到頗為頭疼: Warning: Supplied argument is not a valid MySQL result resource in...

上面所報告有錯的一行可能是:

while($row = mysql_fetch_array($result)) {

參數 $result并不是一個有效的資源。在英語中它表示因為查詢失敗,將無法處理mysql_fetch_array。任一查詢的語法無效(您應該將查詢復制-粘貼到MySQL 控制臺參考來進行測試),或者與數據庫的連接失敗(這種情況下您應該再次檢查用戶名和口令等)。

防止錯誤發生

第一步,智能代碼器可采取以下幾步來消除下列錯誤出現:

· 在每一條語句的末尾處,不必考慮添加分號——這應該成為一種習慣。

· 總是要盡可能標明代碼的層次結構,這可以使您能夠查看是否忘記在if 調用或函數末端等位置添加大括號。

· 請使用可突出顯示語法的編輯器(如 HTML-Kit)。有了這類編輯器的輔助,您就能確定是否忘記了添加引號,是否缺少分號等。

結論

本文我們對PHP編譯器可報出的一些看起來可能沒有什么意義的錯誤有了一定的了解。我們需要將所學的知識應用到如何避免錯誤以及錯誤出現時如何糾正錯誤。調試是一個開發人員所有工作中的最重要的部分之一。提高調試效率可大大加快整個工作的進度,縮短完成一項工程所需花費的時間,同時還可以明顯減輕代碼失敗所帶來的精神壓力。

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品国产自产在线观看永久∴| 精品久久国产一区| 国语对白精品一区二区| 精品成av人一区二区三区| 宅男在线一区| 欧美一级网址| 久久99久久久精品欧美| 国产三级精品三级在线观看国产| 国产精品免费精品自在线观看| 日本少妇一区二区| 精品亚洲a∨| 韩国精品主播一区二区在线观看| 国产福利片在线观看| 日韩一区二区在线免费| 欧美日韩免费观看视频| 婷婷综合在线| 日韩1区2区日韩1区2区| 国产videos久久| 97精品一区| 亚洲少妇诱惑| 国产精品99久久免费观看| www在线观看黄色| 亚洲啊v在线| 噜噜噜躁狠狠躁狠狠精品视频 | 久久精品1区| 亚洲视频国产| 国产日产一区| 欧美一区二区三区激情视频| 午夜日韩福利| 国产精品一区二区99| 亚洲va中文在线播放免费| 国产99亚洲| 日韩国产在线一| 日韩伦理在线一区| 亚州av一区| 久久久天天操| 欧美久久亚洲| 国产精品日本| 色婷婷久久久| 美女视频免费精品| 日韩中文字幕91| 欧美成人基地 | 欧美久久精品一级c片| 91精品丝袜国产高跟在线| 亚洲伦乱视频| 日韩av中文在线观看| 欧美日韩在线播放视频| 国产精品第十页| 男人的天堂久久精品| 久久精品青草| 黄色网一区二区| 国产精品一线天粉嫩av| 蜜臀精品久久久久久蜜臀| 亚洲黑丝一区二区| 亚洲女同av| 国产午夜一区| 91欧美精品| 午夜电影一区| 亚洲欧美日本国产| 在线国产精品一区| 中文在线不卡| 欧美日韩免费观看一区=区三区| 精品日产乱码久久久久久仙踪林| **爰片久久毛片| 欧美日韩xxxx| 国产精选一区| 久久精品一区二区国产| 国产福利一区二区三区在线播放| 中文字幕av亚洲精品一部二部| 伊人成人在线视频| 午夜国产欧美理论在线播放 | 日韩一区二区三区免费视频| 国产亚洲在线| 亚洲一二三区视频| 欧美亚洲色图校园春色| 激情欧美一区二区三区| 欧美日韩国产在线观看网站| 好看不卡的中文字幕| 亚洲一区av| 精品国产精品久久一区免费式| 国产黄大片在线观看| 精品日韩毛片| 国产精品地址| 激情婷婷久久| 亚洲欧美日韩视频二区| 悠悠资源网久久精品| 蜜臀久久99精品久久久画质超高清 | 日产精品一区| 蜜臀久久久99精品久久久久久| 日韩精品免费视频一区二区三区| 国产欧美91| 欧美三区四区| 日本欧美一区二区| 国产精品羞羞答答在线观看| 国产成人免费精品| 蜜臀精品一区二区三区在线观看 | av不卡在线| 久久av超碰| 蜜臀av在线播放一区二区三区| 欧美国产亚洲精品| 丝袜美腿成人在线| av在线最新| 青草国产精品久久久久久| 日本久久成人网| 日本视频一区二区| 91久久黄色| 国产福利91精品一区二区| 久久亚洲色图| 久久久噜噜噜| 狠狠久久婷婷| 国产高清不卡| 国产精品一级在线观看| 怡红院精品视频在线观看极品| 国产精品主播| 日韩高清一区在线| 亚洲免费网址| 亚洲v在线看| 国产精品国产三级国产在线观看| 国产精品视区| 久久精品影视| 国产精品一国产精品k频道56| 亚洲男人在线| 欧美天堂一区二区| 日精品一区二区三区| 亚洲ab电影| 日韩精品三级| 欧美在线亚洲| 欧美中文字幕一区二区| 麻豆国产精品| 久久三级毛片| 日韩超碰人人爽人人做人人添| 日韩午夜精品| 视频在线观看一区二区三区| 亚洲高清成人| 日韩一区中文| 热久久久久久| 亚洲三级av| 视频国产精品| 国产欧美自拍| 美日韩一区二区三区| 福利视频一区| 久久中文字幕二区| aⅴ色国产欧美| 日本一区二区三区中文字幕| 亚洲乱码视频| 国产精品免费大片| 国产69精品久久| 久久国产欧美| 亚洲综合另类| 国产欧美一区二区精品久久久| **爰片久久毛片| 免费在线亚洲欧美| 国产66精品| 久久国产精品久久w女人spa| 日韩福利视频网| 国产精品国码视频| 亚洲欧美日本视频在线观看| 日韩国产欧美三级| 精品一区二区三区中文字幕视频| 欧美男人天堂| 欧美一区二区三区久久精品| 国产一区二区亚洲| 婷婷精品视频| 日本h片久久| 99久精品视频在线观看视频| 日本va欧美va瓶| 国产精品xx| 欧美精品九九| av在线最新| 国产欧美69| 综合一区在线| 亚洲精品2区| 福利视频一区| 国产精品a级| 日本成人在线网站| 黄色av一区| 亚洲精品黄色| 中文欧美日韩| 亚洲性图久久| 人人精品亚洲| 97精品国产| 亚洲女同av| 国产激情综合| 国产精品22p| 欧美日韩伊人| 清纯唯美亚洲综合一区| 午夜精品亚洲| 日韩国产欧美一区二区| 国产福利一区二区三区在线播放| 午夜在线视频观看日韩17c| 婷婷激情一区| 黄色在线观看www| 国产精品久久久久久久久妇女| 久久精品九色| 91免费精品| 久久久久网站| 亚洲精品99| 欧美va亚洲va日韩∨a综合色| 精品福利久久久| 超碰成人av|