您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP最常遇到幾個(gè)錯(cuò)誤以及它們的解決方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP最常遇到幾個(gè)錯(cuò)誤以及它們的解決方法”吧!
錯(cuò)誤一:Parse error: syntax error, unexpected …
這種錯(cuò)誤是PHP解析器在解析時(shí)遇到了語(yǔ)法錯(cuò)誤,直譯為:
解析錯(cuò)誤:語(yǔ)法錯(cuò)誤,意料之外的…
通常是我們?cè)趯?xiě)代碼時(shí),語(yǔ)法格式不對(duì),比如:每一條語(yǔ)句都應(yīng)當(dāng)以英文分號(hào)結(jié)束,如果不寫(xiě)分號(hào),或打成了中文分號(hào),就會(huì)報(bào)這樣的錯(cuò)誤。這個(gè)錯(cuò)誤還會(huì)在很多語(yǔ)法不正確的地方報(bào)錯(cuò)出現(xiàn)。
錯(cuò)誤二:Fatal error: Uncaught Error: Call to undefined function…
代碼在執(zhí)行時(shí)遇到了致命錯(cuò)誤,直譯為:
致命錯(cuò)誤:未捕獲錯(cuò)誤:調(diào)用了未定義的函數(shù)…
遇到這個(gè)錯(cuò)誤其實(shí)非常好解決,因?yàn)檫@個(gè)提示非常明顯,就是看后面報(bào)錯(cuò)在第幾行,找到這一行,仔細(xì)查看這一行中所使用的函數(shù)名字是否寫(xiě)錯(cuò)。 解決思路:既然提示調(diào)用了未定義的函數(shù),就是說(shuō)函數(shù)名無(wú)法識(shí)別,那肯定是寫(xiě)錯(cuò)函數(shù)名或自定義函數(shù)真的沒(méi)定義。
錯(cuò)誤三:Notice: Array to string conversion in…
這個(gè)錯(cuò)誤是初學(xué)者最容易遇到的,只是一個(gè)提示錯(cuò)誤,級(jí)別非常低,不影響整個(gè)代碼的執(zhí)行。出現(xiàn) Parse error或Fatal error 時(shí)PHP程序會(huì)中斷執(zhí)行。
錯(cuò)誤提示可以理解為提示:數(shù)組在第…行轉(zhuǎn)換成字符串
一般是由echo后面輸出一個(gè)數(shù)組時(shí)導(dǎo)致的,也可能是數(shù)組作為字符串進(jìn)行拼接運(yùn)算時(shí)導(dǎo)致的。因?yàn)镻HP是弱類(lèi)型編程語(yǔ)言,在運(yùn)算時(shí)會(huì)自動(dòng)根據(jù)環(huán)境需要轉(zhuǎn)換數(shù)據(jù)類(lèi)型。解決辦法就是找到提示的那一行,將數(shù)組提前處理好以后再進(jìn)行字符串運(yùn)算即可。
錯(cuò)誤四:Parse error: syntax error, unexpected ‘1’ (T_LNUMBER), expecting variable …
當(dāng)出現(xiàn)PHP無(wú)法解析的語(yǔ)法錯(cuò)誤時(shí)會(huì)提示這個(gè),unexpected是意料之外的…,后面還有提示expecting是指希望出現(xiàn)… 。一般在變量名、函數(shù)名等取名不符合命名語(yǔ)法規(guī)范時(shí)會(huì)報(bào)這個(gè)錯(cuò)。 解決辦法就是仔細(xì)看報(bào)錯(cuò)的行命名是否正確。
錯(cuò)誤五:Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given …
這個(gè)錯(cuò)誤是一個(gè)警告錯(cuò)誤,也不影響程序的執(zhí)行。通常出現(xiàn)在數(shù)據(jù)庫(kù)讀取結(jié)果集數(shù)據(jù)時(shí),初學(xué)者比較難找到錯(cuò)誤的解決辦法,因?yàn)楦鶕?jù)無(wú)法通過(guò)提示所在行找出錯(cuò)誤。
直譯為:
警告:mysqli_fetch_assoc函數(shù)期望參數(shù)1是mysqli的結(jié)果集,但是給了一個(gè)布爾值。
也就是說(shuō)當(dāng)我們寫(xiě)好SQL語(yǔ)句從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)時(shí),本身應(yīng)該返回結(jié)果集,再給結(jié)果集中讀取數(shù)據(jù)。但是,結(jié)果集卻是一個(gè)布爾值,所以反推出極有可能是SQL語(yǔ)句寫(xiě)錯(cuò)了,導(dǎo)致執(zhí)行出錯(cuò),結(jié)果集就成了執(zhí)行結(jié)果false。
解決辦法:仔細(xì)檢查SQL語(yǔ)句,最好是將拼接好的SQL語(yǔ)句輸出出來(lái)看看,確認(rèn)沒(méi)問(wèn)題再提交到服務(wù)器執(zhí)行。
錯(cuò)誤六:Notice: Undefined variable:…
直譯為:提示:未定義變量a
當(dāng)使用了一個(gè)未定義的變量時(shí),會(huì)報(bào)這個(gè)錯(cuò),只需要仔細(xì)檢查變量的定義或拼寫(xiě)正確即可解決。
錯(cuò)誤七:Notice: Undefined index: username in …
直譯為:提示:未定義的索引:username
通常在使用了一個(gè)未定義的數(shù)組元素時(shí)會(huì)出現(xiàn),PHP中有一種特殊的關(guān)聯(lián)數(shù)組,可以使用鍵名訪(fǎng)問(wèn)值,在提示是也按索引數(shù)組的方式提示,所以容易造成初學(xué)者誤解。 解決辦法就是仔細(xì)查看是不是數(shù)組鍵名是否寫(xiě)錯(cuò)或未定義。
錯(cuò)誤八:亂碼
當(dāng)看到網(wǎng)頁(yè)上顯示一段看不懂的符號(hào)、亂糟糟的繁體字或問(wèn)號(hào)時(shí),我們稱(chēng)為亂碼。這是由于PHP生成HTML代碼時(shí)的字符集與瀏覽器默認(rèn)展示的字符集不相同導(dǎo)致的。
解決辦法:
在PHP代碼的最頂部(任何輸出語(yǔ)句之前)加響應(yīng)頭聲明字符集:
感謝各位的閱讀,以上就是“PHP最常遇到幾個(gè)錯(cuò)誤以及它們的解決方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP最常遇到幾個(gè)錯(cuò)誤以及它們的解決方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。