成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

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

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

編譯器的工作方式

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

變量聲明

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

$variable = 'value';

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

解析錯誤

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

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

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

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

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

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

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

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

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

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

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

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

其他一些常見的錯誤

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

具體代碼如下:

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

將產(chǎn)生下列錯誤:

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

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

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

MySQL 錯誤

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

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

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

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

防止錯誤發(fā)生

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

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

· 總是要盡可能標明代碼的層次結(jié)構(gòu),這可以使您能夠查看是否忘記在if 調(diào)用或函數(shù)末端等位置添加大括號。

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

結(jié)論

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

標簽: PHP
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久国产福利| 日韩亚洲欧美成人一区| 欧美日韩在线播放一区二区| 一本色道久久综合亚洲精品高清| 另类av一区二区| 欧美日韩一本到| 国产婷婷色一区二区三区在线| 亚洲一区二区欧美激情| 国产毛片精品一区| 日韩亚洲不卡在线| 538prom精品视频线放| 国产精品毛片久久久久久| 五月天激情综合网| 91丝袜美腿高跟国产极品老师 | 91黄色激情网站| 久久你懂得1024| 婷婷久久综合九色综合伊人色| 高清成人免费视频| 亚洲久久一区二区| 欧美一区二区在线播放| 亚洲摸摸操操av| 国产成人小视频| 国产精品一区在线观看| 日韩欧美在线网站| 亚洲一区二区四区蜜桃| 成人午夜在线视频| 久久综合一区二区三区| 国产亚洲精品bt天堂精选| 午夜精品免费在线观看| 色综合天天综合狠狠| 在线观看网站黄不卡| 国产精品嫩草影院com| 麻豆视频一区二区| 欧美日韩在线播放一区二区| 欧美天堂亚洲电影院在线播放| 日韩伦理电影网| 国产成人在线视频网址| 蜜桃久久av| 国产精品黄色在线观看| 国产91精品露脸国语对白| 久久久精品国产一区二区三区| 国产精品天干天干在观线| 国产高清一区日本| 鲁大师成人一区二区三区| 国产精品人成在线观看免费| 国产99精品国产| 欧美亚洲国产bt| 一区二区久久久久久| 91丨九色丨国产丨porny| 欧美日韩中文精品| 亚洲一区二区精品久久av| 欧美一区二区三区四区在线观看地址| 欧美日韩一区二区在线观看视频 | 青青草国产精品亚洲专区无| 国外精品视频| 欧美成人高清电影在线| 精品亚洲aⅴ乱码一区二区三区| 国产精品日韩欧美一区二区三区| 欧美中文字幕亚洲一区二区va在线| 国产精品精品国产色婷婷| www.亚洲精品| 日韩一区二区三区四区| 久久成人精品无人区| 免费永久网站黄欧美| 亚洲三级在线观看| 国产精品国产精品| 日本一区二区不卡视频| 91小视频在线| 久久综合色8888| 国产91精品在线观看| 欧美三级蜜桃2在线观看| 亚洲风情在线资源站| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久亚洲免费视频| 粉嫩av一区二区三区在线播放| 欧美日韩中字一区| 美女一区二区在线观看| 久久精品中文| 亚洲制服丝袜av| 国产日韩1区| 亚洲精品视频在线| 亚洲人成人一区二区三区| 国产精品久久综合| 狠狠色综合网站久久久久久久| 国产欧美日韩视频在线观看| 99re免费视频精品全部| 精品国产免费人成电影在线观看四季 | 亚洲3atv精品一区二区三区| 精品动漫3d一区二区三区免费版 | 合欧美一区二区三区| 久久亚洲二区三区| av电影在线观看一区| 欧美一区二区二区| 国产裸体歌舞团一区二区| 欧美剧情电影在线观看完整版免费励志电影| 五月天国产精品| 色综合久久久久网| 亚洲成人动漫一区| 麻豆精品91| 丝袜美腿高跟呻吟高潮一区| 香港久久久电影| 天天综合天天做天天综合| 色婷婷av一区二区三区gif| 日韩精品乱码免费| 91福利视频网站| 久久福利视频一区二区| 欧美精品 国产精品| 国产精品一区二区91| 欧美大片免费久久精品三p| 99re视频这里只有精品| 国产性做久久久久久| 午夜精品亚洲| 国产精品传媒入口麻豆| 亚洲精品影院在线观看| 亚洲在线中文字幕| 欧美亚洲综合网| 丁香啪啪综合成人亚洲小说| 国产视频视频一区| 国产农村妇女精品一二区 | 精品捆绑美女sm三区| 成人aaaa免费全部观看| 国产婷婷色一区二区三区| 亚洲毛片在线| 日韩一区精品字幕| 欧美日韩在线播| 美女高潮久久久| 欧美一区二区久久| 欧美精品日韩| 亚洲图片欧美视频| 欧美日韩黄视频| 色综合天天综合网天天狠天天| 自拍偷在线精品自拍偷无码专区| 午夜一级久久| 国产一区二区三区免费| 欧美韩日一区二区三区| 久久国产一区二区| 国产成人av电影在线| 中文字幕中文在线不卡住| 久久青青草综合| 成人国产视频在线观看| 玉足女爽爽91| 欧美久久久久中文字幕| 欧美人成在线| 视频在线观看一区| 精品国产伦一区二区三区观看方式 | 欧美午夜精品一区二区三区 | 久久久久88色偷偷免费 | 91久久精品www人人做人人爽| 亚洲福利电影网| 5566中文字幕一区二区电影| 欧美日韩高清免费| 日本网站在线观看一区二区三区| 26uuu国产日韩综合| 毛片一区二区| 99久久免费国产| 婷婷成人激情在线网| 精品88久久久久88久久久| 国产午夜精品一区二区三区欧美| 国产在线看一区| 亚洲日本欧美天堂| 欧美精品一卡二卡| 日韩午夜激情| 国产精品一区二区三区99| 亚洲三级电影网站| 日韩欧美中文字幕一区| 国产农村妇女精品一区二区| 成人手机电影网| 亚洲成人黄色小说| 久久人人超碰精品| 久久婷婷久久| 欧美1区3d| 久久福利视频一区二区| 自拍偷在线精品自拍偷无码专区| 欧美精品在欧美一区二区少妇| 亚洲国产一区二区三区在线播 | 青青青爽久久午夜综合久久午夜| 久久久一区二区| 色狠狠色狠狠综合| 午夜久久99| 韩日在线一区| 亚洲国产精品成人综合色在线婷婷| 欧美色倩网站大全免费| 成年人国产精品| 激情综合网天天干| 亚洲国产精品综合小说图片区| 亚洲自拍偷拍网站| 亚洲国产一区视频| 91成人免费在线| 亚洲制服少妇| 精品精品欲导航| 国产精品原创巨作av| 欧美色成人综合| 日韩电影在线看| 欧美精品1区2区| 欧美日韩精品| 狠狠色综合播放一区二区| 尤物网精品视频| 日本视频在线一区| 亚洲视频一区在线| 欧美日韩一区在线|