前言:這里的調(diào)試方法是指找錯(cuò)誤,和分析錯(cuò)誤的方法。
成都創(chuàng)新互聯(lián)專(zhuān)注于咸豐網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供咸豐營(yíng)銷(xiāo)型網(wǎng)站建設(shè),咸豐網(wǎng)站制作、咸豐網(wǎng)頁(yè)設(shè)計(jì)、咸豐網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造咸豐網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供咸豐網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。測(cè)試代碼最好打開(kāi)php錯(cuò)誤報(bào)告,方法有兩種一種是在php.ini里面設(shè)置。另外一種是使用函數(shù)error_reporting。打開(kāi)php.ini找到error_reporting修改成error_reporting = ALL;當(dāng)然我們當(dāng)初是拷貝的開(kāi)發(fā)那份,所以是默認(rèn)打開(kāi)的,如果你的關(guān)閉了只要修改這里就好了。reporting也有等級(jí)區(qū)分。以后在介紹php.ini的時(shí)候詳細(xì)介紹。
另外如果命令行模式我們一般會(huì)加上
在命令行下試試下面的代碼吧
將這段代碼保存到d:/www/test/a.php然后到cmd中運(yùn)行php d:/www/test/a.php看看效果吧
php調(diào)試
錯(cuò)誤1語(yǔ)法錯(cuò)誤:這類(lèi)錯(cuò)誤最容易定位,無(wú)論是web程序還是命令行程序,都會(huì)給出出錯(cuò)的行,然后你根據(jù)出錯(cuò)的行去修改調(diào)試,直到正確。還記得emacs C+c r今天再教大家一個(gè)C+c d 修改.emacs文件在以下代碼的上方
加入
在(define-key php-mode-map [(control c) (r)] ‘php-run)下一行加入(define-key php-mode-map [(control c) (d)] ‘php-debug)
然后重啟emacs打開(kāi)一個(gè)php文件輸入<?php echo “我是個(gè)錯(cuò)誤的示范” echo ;?>試試C+c d吧是否提示錯(cuò)誤啦。
錯(cuò)誤2沒(méi)有運(yùn)行:這類(lèi)錯(cuò)誤是指運(yùn)行過(guò)程中中斷了,調(diào)試這類(lèi)錯(cuò)誤我通常是在有可能出錯(cuò)的地方前后加入echo “num”;比如如下代碼
也許你對(duì)&&理解有誤導(dǎo)致了這個(gè)問(wèn)題,上面的代碼將輸出13而2沒(méi)有輸出所以是if判斷有問(wèn)題。
錯(cuò)誤3算法錯(cuò)誤:這類(lèi)錯(cuò)誤簡(jiǎn)而言之就是結(jié)果和你預(yù)期不符合,這樣的錯(cuò)誤比較難找原因。你需要清晰的邏輯,首先你要知道每一行代碼對(duì)運(yùn)算結(jié)果的影響,一行一行的輸出看看哪一行輸出不是預(yù)期結(jié)果。
二、輸出輸出單行用echo,print。為了輸出美觀(guān)點(diǎn),一般在命令行模式比如你在用C+c r調(diào)試的時(shí)候一般在后面跟著輸出”n”比如<?php echo “測(cè)試輸出n”;echo “測(cè)試輸出n”;?>而在web調(diào)試的時(shí)候輸出”<br />”比如<?php echo “測(cè)試輸出<br />”;echo “測(cè)試輸出<br />”;?>
輸出其他類(lèi)型可以用var_dump、print_r、var_export,當(dāng)然這些函數(shù)也可以打印字符串,只是多打幾個(gè)字母而已。其中var_dump和var_export類(lèi)似只是打印出數(shù)組或?qū)ο蟮淖址问剑鴙ar_dump還會(huì)打印出變量的類(lèi)型,而print_r打印出的內(nèi)容更容易閱讀。試試下面的代碼吧。
上例中的最后三行,顯示了幾種常見(jiàn)用法。即字符串中有和包裹字符串的引號(hào)相同時(shí)使用反斜杠來(lái)區(qū)分比如”我是”雙引號(hào)”" ’\'我是單引號(hào)”,如果單引號(hào)和雙引號(hào)混用時(shí)要注意包裹范圍。字符串和字符串之間用.來(lái)鏈接。
這里告訴大家一個(gè)更加實(shí)用的函數(shù)
這樣在web輸出的時(shí)候也能夠容易讀一點(diǎn)只要把這段代碼放到要運(yùn)行的php之前即可。
為了調(diào)試方便一般會(huì)再輸出后面加上exit;讓代碼停止運(yùn)行。
三、區(qū)別正式環(huán)境和測(cè)試環(huán)境有時(shí)候需要正式環(huán)境和測(cè)試環(huán)境內(nèi)容不同,一個(gè)方法是在apache收到請(qǐng)求的時(shí)候就在環(huán)境里面告訴php是測(cè)試環(huán)境還是正式環(huán)境。就是在虛擬主機(jī)里面配置SetEnv ENV “dev”在php代碼中可以用$_SERVER[\'ENV\']取得dev這個(gè)值當(dāng)然ENV和dev都是自定義的。這樣就可以區(qū)分是什么環(huán)境了。
另外有時(shí)候你想再正式環(huán)境運(yùn)行代碼,但是又不能讓普通用戶(hù)看到你的測(cè)試代碼怎么辦呢??梢栽诘刂泛竺婕?__DEBUG__=1來(lái)區(qū)分,因?yàn)槠胀ㄓ脩?hù)瀏覽的時(shí)候不會(huì)知道還有這個(gè)參數(shù)。而你可以用$_GET[\'__debug__\']==1來(lái)判斷是不是測(cè)試用的。當(dāng)然__DEBUG__ 和 1是自定義的,你可以選任何你知道。
新聞名稱(chēng):php調(diào)試方法
轉(zhuǎn)載源于:http://www.rwnh.cn/article44/cjphee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容