亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    在之前的文章中給大家?guī)砹恕稁阋黄鹆私釶HP的錯誤類型和錯誤級別》,其中詳細介紹了PHP中的錯誤類型和錯誤級別,本篇文章我們一起來看一下,在PHP中如何自定義錯誤處理以及如何屏蔽錯誤,希望對大家有幫助!

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    我們在日常開發(fā)中,遇到錯誤是難免的,有些時候我們可以指定一個函數(shù)作為錯誤來處理函數(shù),在PHP中就存在一個自定義錯誤處理函數(shù)。

    set_error_handler() 函數(shù)自定義錯誤處理函數(shù)

    PHP中提供了set_error_handler()函數(shù)就是用來指定一個函數(shù)作為錯誤處理函數(shù),它的語法格式如下:

    set_error_handler(自定義函數(shù)名 [, int $error_types = E_ALL | E_STRICT ])

    其中自定義函數(shù)名這個自定義函數(shù)的語法格式如下:

    error_handler(int 錯誤的級別 , string 錯誤的信息 [, string 發(fā)生錯誤的文件名 [, int 發(fā)生錯誤的行號 ]])

    之前如果有過定義的錯誤處理程序,返回的就是改程序的程序名稱;如果是內(nèi)置的錯誤處理程序,返回的結(jié)果是NULL。若是指定了一個無效的回調(diào)函數(shù),同樣會返回NULL。

    接下來我們通過示例來看一下,自定義一個錯誤處理函數(shù),并使用它來處理程序中的錯誤,示例如下:

    <?php     function error_handler($errno, $errstr, $errfile, $errline ) {         echo "error number:".$errno."<br/>";         echo "error msg:".$errstr."<br/>";         echo "error file:".$errfile."<br/>";         echo "error line:".$errline."<br/>";         die('something error');     }     set_error_handler("error_handler");     strpos(); ?>

    輸出結(jié)果:

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    我們在使用此函數(shù)時需要注意的是,只用這種方式來進行錯誤處理,若是函數(shù)沒有錯誤的話,或者說程序沒有在錯誤的函數(shù)中運行,程序會繼續(xù)往下執(zhí)行發(fā)生錯誤的函數(shù)語句,因此我們需要使用die()函數(shù)來終止函數(shù)的運行。

    在我們的日常開發(fā)中,程序中的異常無法自動拋出來,這時候我們也可以使用set_error_handler() 自定義,將異常當作錯誤來處理,這樣我們就可以使用自定義錯誤處理來自動捕捉異常。

    示例如下:

    <?php     function error_handler($errno, $errstr, $errfile, $errline ) {         echo "error number:".$errno."<br/>";         echo "error msg:".$errstr."<br/>";         echo "error file:".$errfile."<br/>";         echo "error line:".$errline."<br/>";         die('something error');     }     set_error_handler("error_handler");     /* 觸發(fā)異常 */     try {         $a = 5/0;//程序會自動捕捉這個異常,并且由自定義函數(shù)來處理         echo $a;     } catch(Exception $e) {         echo $e->getMessage();     } ?>

    輸出結(jié)果:

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    錯誤屏蔽

    在PHP開發(fā)過程中,我們不僅可以通過set_error_handler()自定義錯誤處理函數(shù)來處理錯誤,我們還能夠把錯誤屏蔽掉,在有些情況下,錯誤屏蔽也是必不可少的。那接下來給大家列舉一些用于錯誤屏蔽的方法。

    • @—錯誤控制運算符

    在PHP中,將錯誤控制運算符@,放在一個表達式的前面,那這個表達式中可能存在的錯誤都會被屏蔽掉。

    其中關(guān)于@的使用,我們需要注意的是:@運算符只有放在表達式的前面才會生效,例如變量、函數(shù)、常量等等的前面可以使用@運算符,絕對不能放在函數(shù)的或者類的定義之前,也不能夠放在條件結(jié)構(gòu)語句的前面。

    示例如下:

    <?php     $link = @mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('數(shù)據(jù)庫連接失??!'); ?>

    輸出結(jié)果:

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    在上述示例中,看得出通過@錯誤控制運算符,在表達式前能夠屏蔽表達式。

    • 使用 error_reporting() 函數(shù)屏蔽錯誤

    PHP 中有很多的錯誤級別,使用 error_reporting() 函數(shù)可以設(shè)置 PHP 會報告何種錯誤,函數(shù)的語法格式如下:

    error_reporting(設(shè)置錯誤級別)

    關(guān)于錯誤級別在上一篇文章《帶你一起了解PHP的錯誤類型和錯誤級別》中有更詳細的介紹,接下來我們通過示例來看一下函數(shù)的使用:

    <?php     error_reporting(0);     $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('數(shù)據(jù)庫連接失敗!'); ?>

    輸出結(jié)果:

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    • 通過 display_errors 參數(shù)屏蔽錯誤

    這種方法時最徹底的一種方法,前面兩種方法只作用于單行或者單個文件,但是通過display_errors 參數(shù)屏蔽錯誤是作用在所有的PHP文件,那我們一起來看一下應(yīng)該怎么操作吧。

    首先我們需要打開php.ini配置文件,然后找到display_errors,將其的值設(shè)置為Off就可以關(guān)閉所有的PHP錯誤報告了。

    (在之前的文章《PHP如何上傳文件?看完就明白了!》中介紹了怎樣去php,ini配置文件的相關(guān)知識)

    示例如下:

    PHP中自定義錯誤處理函數(shù)與錯誤屏蔽你會了嗎?

    由此便能夠屏蔽錯誤了。

    大家如果感興趣的話,可以點擊《PHP視頻教程》進行

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號