|
|
|
|
|
編程就有這么奇妙,有時(shí)一個(gè)小小的錯(cuò)誤,一個(gè)不小心的寫錯(cuò)寫漏的失誤,就可能導(dǎo)致來回折騰了不少時(shí)間,就在今天,我就又一次遇到了這樣的事情,過后實(shí)在是讓人哭笑不得。
事件經(jīng)過
今天編寫一個(gè)小程序,運(yùn)行時(shí)報(bào)錯(cuò)了,全英文的錯(cuò)誤提示:
Parse error: syntax error, unexpected T_STRING ......(后面跟一大串路徑,行號(hào))
Parse error 是解析錯(cuò)誤,syntax error 是上下文錯(cuò)誤,unexpected T_STRING 是意外的字符串。
我改來改去,T_STRING 有時(shí)變?yōu)?T_VARIABLE ,等等,但前面都是 Parse error: syntax error, unexpected 。
后來,我一行行代碼的刪除/運(yùn)行,刪除/運(yùn)行,反復(fù)檢查。
最后,當(dāng)斷點(diǎn)到某一行時(shí),程序沒有再報(bào)錯(cuò)了,所以就很肯定的是,錯(cuò)誤就出在下一行代碼里。
再認(rèn)真地檢查,結(jié)果發(fā)現(xiàn)——句末少了個(gè)分號(hào)“;
”!
馬上加上,結(jié)果運(yùn)行正常了。
后記
由于語法產(chǎn)生的異常,非常常見,當(dāng)我們看到 Parse error: syntax error, 這樣的字眼時(shí),就要注意了,很可能問題就出在語法上,你可能寫漏、寫多或?qū)戝e(cuò)了一個(gè)符號(hào),你這時(shí)需要做的不是去翻查函數(shù)的用法,而是看看是否寫漏、寫多或?qū)戝e(cuò)了一個(gè)符號(hào),包括單引號(hào)、雙引號(hào)、括號(hào)、分號(hào)等等,檢查語句是否寫完整了。