PHP初學者最常遇到的8個錯誤及解決方法
PHP由於即可以程式導向也可以物件導向開發,被廣泛認為是最容易學習的程式語言。在原始碼時代的全棧學科,PHP被作為全棧的後端語言。初學者在學習程式語言往往是從程式導向開始的,這樣更容易理解。但是在學習PHP的過程中時常會遇到各種報錯,全是英文,對於英文基礎差的同學會很不友好。
本篇為大家收集了初學者最常遇到的8個報錯,併為大家提供對應的解決思路。
錯誤一:Parse error: syntax error, unexpected …
這種錯誤是PHP解析器在解析時遇到了語法錯誤,直譯為:
解析錯誤:語法錯誤,意料之外的…
通常是我們在寫程式碼時,語法格式不對,比如:每一條語句都應當以英文分號結束,如果不寫分號,或打成了中文分號,就會報這樣的錯誤。這個錯誤還會在很多語法不正確的地方報錯出現。
錯誤二:Fatal error: Uncaught Error: Call to undefined function…
程式碼在執行時遇到了致命錯誤,直譯為:
致命錯誤:未捕獲錯誤:呼叫了未定義的函式…
遇到這個錯誤其實非常好解決,因為這個提示非常明顯,就是看後面報錯在第幾行,找到這一行,仔細檢視這一行中所使用的函式名字是否寫錯。 解決思路:既然提示呼叫了未定義的函式,就是說函式名無法識別,那肯定是寫錯函式名或自定義函式真的沒定義。
錯誤三:Notice: Array to string conversion in…
這個錯誤是初學者最容易遇到的,只是一個提示錯誤,級別非常低,不影響整個程式碼的執行。出現 Parse error或Fatal error 時PHP程式會中斷執行。
錯誤提示可以理解為提示:陣列在第…行轉換成字串
一般是由echo後面輸出一個陣列時導致的,也可能是陣列作為字串進行拼接運算時導致的。因為PHP是弱型別程式語言,在運算時會自動根據環境需要轉換資料型別。解決辦法就是找到提示的那一行,將陣列提前處理好以後再進行字串運算即可。
錯誤四:Parse error: syntax error, unexpected ‘1’ (T_LNUMBER), expecting variable …
當出現PHP無法解析的語法錯誤時會提示這個,unexpected是意料之外的…,後面還有提示expecting是指希望出現… 。一般在變數名、函式名等取名不符合命名語法規範時會報這個錯。 解決辦法就是仔細看報錯的行命名是否正確。
錯誤五:Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given …
這個錯誤是一個警告錯誤,也不影響程式的執行。通常出現在資料庫讀取結果集資料時,初學者比較難找到錯誤的解決辦法,因為根據無法透過提示所在行找出錯誤。
直譯為:
警告:mysqli_fetch_assoc函式期望引數1是mysqli的結果集,但是給了一個布林值。
也就是說當我們寫好SQL語句從資料庫讀取資料時,本身應該返回結果集,再給結果集中讀取資料。但是,結果集卻是一個布林值,所以反推出極有可能是SQL語句寫錯了,導致執行出錯,結果集就成了執行結果false。
解決辦法:仔細檢查SQL語句,最好是將拼接好的SQL語句輸出出來看看,確認沒問題再提交到伺服器執行。
錯誤六:Notice: Undefined variable:…
直譯為:提示:未定義變數a
當使用了一個未定義的變數時,會報這個錯,只需要仔細檢查變數的定義或拼寫正確即可解決。
錯誤七:Notice: Undefined index: username in …
直譯為:提示:未定義的索引:username
通常在使用了一個未定義的陣列元素時會出現,PHP中有一種特殊的關聯陣列,可以使用鍵名訪問值,在提示是也按索引陣列的方式提示,所以容易造成初學者誤解。 解決辦法就是仔細檢視是不是陣列鍵名是否寫錯或未定義。
錯誤八:亂碼
當看到網頁上顯示一段看不懂的符號、亂糟糟的繁體字或問號時,我們稱為亂碼。這是由於PHP生成HTML程式碼時的字符集與瀏覽器預設展示的字符集不相同導致的。
解決辦法:
在PHP程式碼的最頂部(任何輸出語句之前)加響應頭宣告字符集:
本篇一共給大家總結了8個常見的PHP報錯資訊,對於高手或許並沒有什麼用,但是我們還是需要照顧一下初學的同學,希望會對廣大初學者有幫助。其它PHP的報錯有很多型別,在物件導向中還有專門的異常類,對於錯誤直接當成異常進行丟擲與捕獲,這個我們下次再細說。
文章來源:搜尋引擎大全
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2642589/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS路上遇到的錯誤及解決辦法iOS
- PHP中的Malformed UTF-8 characters錯誤解決PHPORM
- ORACLE匯入遇到ORACLE錯誤959解決方法Oracle
- PHP & Linux: libsodium.so.23 錯誤解決方法PHPLinux
- Elasticsearch常見的5個錯誤及解決策略Elasticsearch
- 程式設計師簡歷中最致命的「八個錯誤 」及解決方法程式設計師
- 資料庫連線錯誤的原因及解決方法資料庫
- Java初學者容易犯哪些錯誤?Java
- win10系統提示遇到錯誤需要重啟的解決方法Win10
- undefined reference to錯誤的解決方法Undefined
- PHP curl error 60 錯誤解決PHPError
- C語言初學者最常問的幾個問題C語言
- Java初學者容易犯的程式碼錯誤Java
- 帝國CMS搬家常見錯誤及解決方法
- tensorflow安裝使用過程錯誤及解決方法
- JAVA web ServletFileUpload檔案上傳遇到大量50+錯誤的解決方法JavaWebServlet
- PbootCMS 404 錯誤解決方法boot
- go語言初學者常見錯誤Go
- dbfread報錯ValueError錯誤解決方法Error
- PHP檔案及執行(適合PHP初學者)PHP
- SSL證書7大常見錯誤及解決方法!
- 中科三方——SSL常見錯誤及解決方法
- MySQL 主從複製,常見的binlog錯誤及解決方法MySql
- 十個PHP開發者最容易犯的錯誤PHP
- 寫出你遇到過IE6/7/8/9的BUG及解決方法
- Python 初學者常犯的5個錯誤,布林型竟是整型的子類Python
- dedecms提示500錯誤解決方法
- 使用kubernetes的10個最常見錯誤 – pipetail BlogAI
- 寫給初學者的Linux errno 錯誤碼機制Linux
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- Mac上搭建chromedriver的錯誤解決方法MacChrome
- standby新增檔案錯誤的解決方法
- nginx出現403錯誤的解決方法Nginx
- MYSQL中 TYPE=MyISAM 錯誤的解決方法MySql
- Idea開發JAVA過程中遇到的錯誤集合以及解決方法,持續更新IdeaJava
- 伺服器出現 HTTP 錯誤程式碼,及解決方法伺服器HTTP
- SSL證書七大常見錯誤及解決方法
- 使用Aihubmix API 服務中遇到錯誤與解決AIAPI