php常見錯誤分享

php常見錯誤分享

php編程時不免會遇到一些錯誤,調試錯誤雖然不是一門高深的學問可是有效的查找卻很重要。
基本策略應遵循一下原則:
1)出現錯誤,判斷錯誤出如今那個環節。
2)判斷出錯緣由,估計錯誤出現的位置
3)查找錯誤根源
4)對錯誤進行修改,首先要先備份 ,別弄的錯誤越改越多。
5)對修改後的代碼進行測試。
手段:
1)增長中間變量或者跟蹤變量。例如輸出一行代碼或者輸出一些相關變量來發現錯誤根源;
2)註釋掉部分代碼 (排除法),當沒法測試出錯誤根源的時候,就使用排除法 ,先註釋掉一下代碼,而後運行查看錯誤是否依然存在。若是仍然存在則繼續註釋。
3)同過調試器來單步調試,這樣能夠跟蹤整個程序的執行過程。發現是否有些應該被執行的代碼沒有被執行。或者變量賦值錯誤等各類致使錯誤的緣由。
常見錯誤分享:
1。語法錯誤:
1)缺乏分號。
在編寫代碼的時候因爲某個語句或者變量的結尾處沒有使用「;」,從而致使程序出錯;

Parse error: syntax error, unexpected T_ECHO in D:\jworkServer\wwwroot\blog\login.php on line 4
2)缺乏單引號或者雙引號
Parse error: syntax error, unexpected $end in D:\jworkServer\wwwroot\blog\login.php on line 7
3)缺乏關鍵字或者邏輯結構
例如沒有寫while條件
Parse error: syntax error, unexpected ';', expecting T_WHILE in D:\jworkServer\wwwroot\blog\login.php on line 14
4)缺乏括號
出錯在程序的最後一行 並且其並無錯誤,就極可能哪裏缺乏括號了
Parse error: syntax error, unexpected ';' in D:\jworkServer\wwwroot\blog\login.php on line 15
5)缺乏美圓符號$;
2.語義錯誤
例如:
$e=$a+$b+$c;
而在php中的鏈接符是「。」而不是「+」,沒有獲得預期的結果;
3。註釋錯誤
對於程序來講註釋是很重要的,特別對後期的修改和維護更是相當重要。在程序中使用了錯誤的註釋,雖然不會影響其運行,但對修改產出影響
例如:
<?php
//循環出$i,從0到50
   for($i=0;$i<50;$i++)
    {
    echo $i;
      }
?>
運行結果是01234。。。4849;但到後期維護時則認爲是錯誤的 ,由於註釋裏的是到50,而實際是「大於等於0小於50的數字」
4)運行錯誤
若是運行中出現錯誤是個麻煩的事情,很難檢測到錯誤出如今什麼地方,同時也難以改正;
1)調用不存在的函數 例如你調用時把函數名寫錯了
Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in D:\jworkServer\wwwroot\blog\login.php on line 15
  或者沒有指定參數 例如
<?php
echo date(); //使用此函數得指定參數;
?>
則獲得告警:
Warning: date() expects at least 1 parameter, 0 given in D:\jworkServer\wwwroot\blog\login.php on line 9

2)讀寫文件
訪問文件的錯誤也常常出現
3)包含的文件不存在
<?php
include("abc.txt");
?>

告警: Warning: include(abc.txt) [ function.include]: failed to open stream: No such file or directory in D:\jworkServer\wwwroot\blog\login.php on line 2

Warning: include() [ function.include]: Failed opening 'abc.txt' for inclusion (include_path='.;C:\php5\pear') in D:\jworkServer\wwwroot\blog\login.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at D:\jworkServer\wwwroot\blog\login.php:2) in D:\jworkServer\wwwroot\blog\login.php on line 3

4)運算的錯誤
若是出現不符合運算規則則出現錯誤:
<?php
$m=5;
$n=0;
$a=$m/$n; //0不能作除數;
echo $a;
?>
告警:
Warning: Division by zero in D:\jworkServer\wwwroot\blog\login.php on line 13

5。邏輯錯誤

邏輯錯誤時在語法上不存在的錯誤,可是從程序的功能是看是BUG,她是嘴難調試和發現的BUG,由於他不會拋出任何錯誤信息。惟一能看到的是程序的功能沒有實現。對於邏輯錯誤而言,發現時容易的,但查找緣由卻很難。
例如:
<?php
$arr = array("php","abc","adsf");
echo $arr[1];
?>
運行結果爲 abc;
可是開發者想輸出的是php,忽略了數組時從0開始計算的
相關文章
相關標籤/搜索