php錯(cuò)誤一般分為三類:1、語法錯(cuò)誤,是在編程中最容易碰到也是最容易解決的一種錯(cuò)誤;2、運(yùn)行時(shí)錯(cuò)誤,是在程序執(zhí)行時(shí)出現(xiàn)的錯(cuò)誤;3、邏輯錯(cuò)誤,程序會(huì)正常執(zhí)行,只是輸出的結(jié)果并不是我們期望的而已。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
任何程序員在開發(fā)時(shí)都可能會(huì)或多或少的造成一些失誤,或其他原因造成錯(cuò)誤的發(fā)生。當(dāng)然,如果用戶不愿意或不遵循應(yīng)用程序的約束,也可能會(huì)在使用時(shí)引起一些錯(cuò)誤發(fā)生。
PHP 程序的錯(cuò)誤發(fā)生一般分為三類,分別是語法錯(cuò)誤、執(zhí)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤。下面分別介紹一下:
1、語法錯(cuò)誤
語法錯(cuò)誤是在編程中最容易碰到也是最容易解決的一種錯(cuò)誤,例如:遺漏一個(gè)分號(hào)時(shí)就會(huì)顯示錯(cuò)誤信息。這種錯(cuò)誤會(huì)停止程序的執(zhí)行,并顯示出錯(cuò)信息。我們可以根據(jù)錯(cuò)誤信息改正程序,然后重新執(zhí)行。
【示例】下面通過簡(jiǎn)單的代碼演示常見語法錯(cuò)誤以及相關(guān)的錯(cuò)誤信息。
<?php $a = 1; $b = 2; $c = $a + $b echo ; ?>
上面代碼中第 4 行末尾省略了;,所以運(yùn)行上面的代碼會(huì)顯示如下錯(cuò)誤信息:
Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:WWWindex.php on line 5
從上面的示例和運(yùn)行結(jié)果可以看出,語法錯(cuò)誤會(huì)阻止程序繼續(xù)向下執(zhí)行。只有解決了這些錯(cuò)誤后程序才可以順利執(zhí)行。
2、運(yùn)行時(shí)錯(cuò)誤
運(yùn)行時(shí)錯(cuò)誤也是就在程序執(zhí)行時(shí)出現(xiàn)的錯(cuò)誤。這種程序的語法沒有錯(cuò)誤,但是在執(zhí)行的過程中,PHP 會(huì)發(fā)現(xiàn)程序有些不合理的地方,從而提示出警告信息,但程序會(huì)繼續(xù)向下執(zhí)行。
【示例】把 0 作為除數(shù)時(shí),會(huì)造成程序運(yùn)行錯(cuò)誤并輸出錯(cuò)誤信息。
<?php $a = 1; $b = 0; $c = $a / $b; echo "$a / $b = $c"; ?>
運(yùn)行結(jié)果如下:
Warning: Division by zero in D:WWWindex.php on line 4 1 / 0 = INF
3、邏輯錯(cuò)誤
邏輯錯(cuò)誤是一種發(fā)生在程序員思想上的錯(cuò)誤。在發(fā)生邏輯錯(cuò)誤時(shí)并沒有明顯的錯(cuò)誤信息,因?yàn)槌绦蛟趫?zhí)行中不會(huì)報(bào)出任何的錯(cuò)誤信息,并且程序會(huì)正常執(zhí)行,只是輸出的結(jié)果并不是我們期望的而已。
【示例】下面通過簡(jiǎn)單的代碼演示邏輯錯(cuò)誤及其輸出結(jié)果。
<?php $a = 1; $b = 2; if($a = $b){ echo '$a = $b'; }else{ echo '$a != $b'; } ?>
運(yùn)行結(jié)果如下:
$a = $b
通過上面的示例可以看到,邏輯錯(cuò)誤是不會(huì)有任何提示信息的。想要避免就只能靠程序員在編寫程序的時(shí)候提高注意了。這還是很短的一段代碼,如果代碼量特別巨大,那么修改起來就很費(fèi)時(shí)間了。
推薦學(xué)習(xí):《PHP視頻教程》