如何正確理解PHP的錯_PHP教程

來源:互聯網
上載者:User
簡述:我們編寫程式時,無論怎樣小心謹慎,犯錯總是在所難免的。這些錯誤通常會迷惑PHP編譯器。如果開發人員無法瞭解編譯器報錯資訊的含義,那麼這些錯誤資訊不僅毫無用處,還會常常讓人感到沮喪。
我們編寫程式時,無論怎樣小心謹慎,犯錯總是在所難免的。這些錯誤通常會迷惑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 就是一個預定義字詞,不能分配給一個值

http://www.bkjia.com/PHPjc/632430.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632430.htmlTechArticle簡述:我們編寫程式時,無論怎樣小心謹慎,犯錯總是在所難免的。這些錯誤通常會迷惑PHP編譯器。如果開發人員無法瞭解編譯器報錯資訊...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.