国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

PHP常見程序錯誤

2024-07-09 22:49:43
字體:
來源:轉載
供稿:網友

php編程時難免會遇到一些錯誤,調試錯誤雖然不是一門高深的學問但是有效的查找卻很重要。



基本策略應遵循一下原則:
1
)出現錯誤,判斷錯誤出現在那個環節。
2
)判斷出錯原因,估計錯誤出現的位置
3
)查找錯誤根源
4
)對錯誤進行修改,首先要先備份 ,別弄的錯誤越改越多。
5
)對修改后的代碼進行測試。



手段:
1
)增加中間變量或者跟蹤變量。例如輸出一行代碼或者輸出一些相關變量來發現錯誤根源;
2
)注釋掉部分代碼 (排除法),當無法測試出錯誤根源的時候,就使用排除法 ,先注釋掉一下代碼,然后運行查看錯誤是否依然存在。如果仍然存在則繼續注釋。
3
)同過調試器來單步調試,這樣可以跟蹤整個程序的執行過程。發現是否有些應該被執行的代碼沒有被執行。或者變量賦值錯誤等各種導致錯誤的原因。



常見錯誤分享:
1
。語法錯誤:
1
)缺少分號。
在編寫代碼的時候由于某個語句或者變量的結尾處沒有使用“;”,從而導致程序出錯;
Parse error: syntax error, unexpected T_ECHO in D:testwwwrootbloglogin.php on line 4



2)缺少單引號或者雙引號
Parse error: syntax error, unexpected $end in D:testwwwrootbloglogin.php on line 7



3)缺少關鍵字或者邏輯結構
例如沒有寫while條件
Parse error: syntax error, unexpected ';', expecting T_WHILE inD:testwwwrootbloglogin.php on line 14



4)缺少括號
出錯在程序的最后一行 而且其并沒有錯誤,就很可能哪里缺少括號了
Parse error: syntax error, unexpected ';' in D:testwwwrootbloglogin.php on line 15



5)缺少美元符號$;


 



2.語義錯誤
例如:
$e=$a+$b+$c;
而在php中的連接符是“.”而不是“+”,沒有得到預期的結果;


 



3.注釋錯誤
對于程序來說注釋是很重要的,特別對后期的修改和維護更是至關重要。在程序中使用了錯誤的注釋,雖然不會影響其運行,但對修改產出影響
例如:
<?php
//
循環出$i,從050
   for($i=0;$i<50;$i++)
    {
    echo $i;
      }
?>
運行結果是01234。。。4849;但到后期維護時則認為是錯誤的 ,因為注釋里的是到50,而實際是“大于等于0小于50的數字”


 



4.運行錯誤
如果運行中出現錯誤是個麻煩的事情,很難檢測到錯誤出現在什么地方,同時也難以改正;
1
)調用不存在的函數 例如你調用時把函數名寫錯了
Parse error: syntax error, unexpected T_VARIABLE, expecting ';' inD:testwwwrootbloglogin.php on line 15
  
或者沒有指定參數 例如
<?php
echo date(); //
使用此函數得指定參數;
?>
則得到告警:
Warning: date() expects at least 1 parameter, 0 given in D:testwwwrootbloglogin.phpon 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:testwwwrootbloglogin.php on line 2

Warning: include() [function.include
]: Failed opening 'abc.txt' for inclusion (include_path='.;C:php5pear') in D:testwwwrootbloglogin.php on line 2

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

4
)運算的錯誤
如果出現不符合運算規則則出現錯誤:
<?php
$m=5;
$n=0;
$a=$m/$n; //0
不能做除數;
echo $a; 
?>
告警:
Warning: Division by zero in D:testwwwrootbloglogin.php on line 13


 




5.邏輯錯誤

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景泰县| 台南市| 剑川县| 韶山市| 桦川县| 福鼎市| 呼和浩特市| 卢湾区| 高碑店市| 侯马市| 罗田县| 沁阳市| 察哈| 堆龙德庆县| 固镇县| 万安县| 邓州市| 库伦旗| 盐池县| 文成县| 镇宁| 襄城县| 安顺市| 喀喇沁旗| 冕宁县| 庆安县| 阆中市| 宜良县| 巩留县| 凤山市| 石台县| 衡阳市| 肇源县| 建昌县| 延川县| 永城市| 白玉县| 类乌齐县| 宁武县| 衢州市| 平度市|