我們編寫程序時,無論怎樣小心謹(jǐn)慎,犯錯總是在所難免的。這些錯誤通常會迷惑PHP編譯器。如果開發(fā)人員無法了解編譯器報錯信息的含義,那么這些錯誤信息不僅毫無用處,還會常常讓人感到沮喪。 " /> 亚洲精品无码久久久久A片,丰满的寡妇hd高清在线观看,国产成人精品午夜福麻豆报告

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

如何正確理解PHP的錯誤信息


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

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

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

本文中所講述的內(nèi)容與您所應(yīng)用php的版本無關(guān),因為本文所描述的各種錯誤并不限定于某一特殊版本的特定錯誤。另外我們假定您是一位初級或者中級程序員,并已經(jīng)從事編程工作有半年或一年的時間。編譯器的工作方式 要搞清楚編譯器為什么會報告某一行上存在錯誤,首先必須明確編譯器解析php代碼的機制。我并不打算在本文中對此進(jìn)行詳細(xì)論述,但是,我們將會討論一些更易于引發(fā)錯誤的簡單概念。

變量聲明如果在一條語句中聲明一個變量,具體方式如下所示:
$variable = 'value';
編譯器首先求出語句右半部分的值(即等號右邊的所有內(nèi)容)。在一些編程書籍中,將此表示為語句的 RHS (右半部分)。恰恰正是語句的這一部分常常會引發(fā)錯誤。如果使用的語法不正確,就會出現(xiàn)解析錯誤。

解析錯誤

Parse error:解析錯誤,unexpected T_WHILE in c:/program files/apache group/apache/htdocs/script.php on line 19

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

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

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

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

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

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

錯誤位于"$b ="一行(在語句的末端缺少分號),所以錯誤應(yīng)該是"解析錯誤:第3行缺少分號"對吧?而不應(yīng)該依據(jù)解析器判定的:
Parse error: parse error, unexpected T_IF in c:/program files/apache
group/apache/htdocs/ereg2.php on line 4

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

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

語句沒有使用分號(;)結(jié)束,比如上面的示例。字符串中缺少引號。 其他一些常見的錯誤 我見過的最常見的錯誤就是,當(dāng)沒有使用大括號( } )結(jié)束一個函數(shù)或者一個循環(huán)時出現(xiàn)的錯誤,這很可能是最常見,最讓人煩的錯誤。具體代碼如下: function UselessFunction() {
for($i < 0; $i < 10; $i++){
}
將產(chǎn)生下列錯誤:
Parse error: parse error, unexpected $ in c:/program files/apache
group/apache/htdocs/ereg2.php on line 9

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

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

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。任一查詢的語法無效(您應(yīng)該將查詢復(fù)制-粘貼到MySQL 控制臺參考來進(jìn)行測試),或者與數(shù)據(jù)庫的連接失敗(這種情況下您應(yīng)該再次檢查用戶名和口令等)。

防止錯誤發(fā)生

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

? 在每一條語句的末尾處,不必考慮添加分號――這應(yīng)該成為一種習(xí)慣。

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

? 請使用可突出顯示語法的編輯器(如 HTML-Kit)。有了這類編輯器的輔助,您就能確定是否忘記了添加引號,是否缺少分號等。 結(jié)論本文我們對php編譯器可報出的一些看起來可能沒有什么意義的錯誤有了一定的了解。我們需要將所學(xué)的知識應(yīng)用到如何避免錯誤以及錯誤出現(xiàn)時如何糾正錯誤。調(diào)試是一個開發(fā)人員所有工作中的最重要的部分之一。提高調(diào)試效率可大大加快整個工作的進(jìn)度,縮短完成一項工程所需花費的時間,同時還可以明顯減輕代碼失敗所帶來的精神壓力

php技術(shù)如何正確理解PHP的錯誤信息,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 美女用手扒开粉嫩的屁股 | 777米奇色狠狠俺去啦 | 2020亚洲国产在线播放在线 | 成人在线视频免费观看 | 人人啪日日观看在线 | 日本G奶乳液汁 | 国产精品爽爽久久久久久竹菊 | 亚洲理论在线a中文字幕 | 亚洲精品午夜VA久久成人 | 99久久免费只有精品 | 首页_亚洲AV色老汉影院 | 在线视频av大全色久久 | 在线中文字幕亚洲日韩 | 伊人久久综合谁合综合久久 | 99久久99久久久精品齐齐鬼色 | 99精品视频在线观看免费 | 欧美亚洲国产手机在线有码 | 一起碰一起噜一起草视频 | 在线毛片片免费观看 | 老男人粗大猛 | 加勒比一本之道高清视频在线观看 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 久久伊人网站 | 特黄特色大片免费播放器试看 | 热久久2018亚洲欧美 | 好看的电影网站亚洲一区 | 樱桃视频影院在线播放 | 蜜桃麻豆WWW久久囤产精品免费 | 日韩精品一区二区三区AV在线观看 | 亚洲欧洲日产国码中学 | 成人a视频片在线观看免费 成人a毛片久久免费播放 | 簧片高清在线观看 | 嘟嘟嘟在线视频免费观看高清中文 | 男女XX00上下抽搐动态图 | 亚洲精品不卡在线 | 免费精品一区二区三区在线观看 | 中文字幕人成人乱码亚洲影视 | 97人妻久久久精品系列A片 | 999久久狠狠免费精品 | 手机毛片在线 | 美女脱精光让男生桶下面 |