亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php怎么屏蔽錯誤提示

發布時間:2021-07-16 11:43:10 來源:億速云 閱讀:113 作者:chen 欄目:編程語言

本篇內容介紹了“php怎么屏蔽錯誤提示”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

方法:1、使用錯誤控制運算符“@”,將其放置在一個PHP表達式前,則可能產生的錯誤信息都將被忽略掉。2、使用error_reporting()函數;3、在“php.ini”文件中,將“display_errors”項的值設置為“Off”。

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP 有 3 種屏蔽錯誤的方法:

  • 使用錯誤控制運算符:@

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

  • 通過 display_errors 參數屏蔽錯誤

1、使用錯誤控制運算符:@

PHP 支持使用錯誤控制運算符@。將其放置在一個 PHP 表達式之前,該表達式可能產生的任何錯誤信息都將被忽略掉。

如果用 set_error_handler() 設定了自定義的錯誤處理函數,這個錯誤處理函數仍然會被調用,而如果在出錯語句前使用了@的話,錯誤處理函數將返回 0。

需要注意的是,@運算符只對表達式有效。簡單來說就是,如果能從某處得到值,就能在它前面加上 @ 運算符。例如可以在變量、函數、include 調用、常量等等之前使用 @ 運算符,但不能把它放在函數或類的定義之前,也不能用于條件結構例如 if 和 foreach 等語句前。

@運算符對于可以導致程序終止的嚴重錯誤也是有效的,這意味著如果在某個不存在或者敲錯了字母的函數調用前用了@來抑制錯誤信息,那么程序將沒有任何提示的死在那里。

【示例】使用 @ 錯誤控制運算符屏蔽代碼中的錯誤。

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

運行結果如下:

數據庫連接失敗!

2、使用 error_reporting() 函數屏蔽錯誤

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

error_reporting([int $level])

其中參數 $level 為設置錯誤級別,如果將 $level 設置為 0,將關閉所有 PHP 錯誤報告;如果設置為 -1,將返回所有的錯誤報告。

PHP 中的錯誤類型如下表所示:

常量說明
1E_ERROR致命的運行時錯誤,一般是不可恢復的情況,例如內存分配導致的問題,后果是導致腳本終止、不再繼續運行。
2E_WARNING運行時警告(非致命錯誤),僅給出提示信息,但是腳本不會終止運行。
4E_PARSE編譯時語法解析錯誤,僅由分析器產生。
8E_NOTICE運行時通知,表示腳本遇到可能會表現為錯誤的情況,但是在可以正常運行的腳本里面也可能會有類似的通知。
16E_CORE_ERROR在 PHP 初始化啟動過程中發生的致命錯誤,類似 E_ERROR,但是是由 PHP 引擎核心產生的。
32E_CORE_WARNINGPHP 初始化啟動過程中發生的警告(非致命錯誤),類似 E_WARNING ,但是是由 PHP 引擎核心產生的。
64E_COMPILE_ERROR致命編譯時錯誤,類似 E_ERROR,但是是由 Zend 腳本引擎產生的。
128E_COMPILE_WARNING編譯時警告(非致命錯誤),類似 E_WARNING,但是是由 Zend 腳本引擎產生的。
256E_USER_ERROR用戶產生的錯誤信息,類似 E_ERROR,但是是由用戶自己在代碼中使用 PHP 函數 trigger_error() 來產生的。
512E_USER_WARNING用戶產生的警告信息,類似 E_WARNING,但是是由用戶自己在代碼中使用 PHP 函數 trigger_error() 來產生的。
1024E_USER_NOTICE用戶產生的通知信息,類似 E_NOTICE,但是是由用戶自己在代碼中使用 PHP 函數 trigger_error() 來產生的。
1024E_STRICT啟用 PHP 對代碼的修改建議,以確保代碼具有最佳的互操作性和向前兼容性。
2048E_RECOVERABLE_ERROR可被捕捉的致命錯誤,表示發生了一個可能非常危險的錯誤,但是還沒有導致 PHP 引擎處于不穩定的狀態。如果該錯誤沒有被用戶自定義句柄捕獲,將成為一個 E_ERROR,從而使腳本終止運行。
8192E_DEPRECATED運行時通知,啟用后將會對在未來版本中可能無法正常工作的代碼給出警告。
16384E_USER_DEPRECATED用戶產生的警告信息,類似 E_DEPRECATED,但是是由用戶自己在代碼中使用 PHP 函數 trigger_error() 來產生的。
30719E_ALLE_STRICT 除外的所有錯誤和警告信息。

【示例】使用 error_reporting() 函數屏蔽代碼中的錯誤。

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

3、通過 display_errors 參數屏蔽錯誤

這種方法應該是最徹底的一種解決辦法,因為前兩種方法只能作用于單行或者單個文件,而這個則是作用于所有的 PHP 文件。

具體的操作方法就是,打開 php.ini 配置文件,在其中搜索 display_errors,然后將 display_errors 的值設置為 Off 即可關閉所有的 PHP 錯誤報告。如下所示:

; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments. Depending on the code
; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; For production environments, we recommend logging errors rather than
; sending them to STDOUT.
; Possible Values:
;   Off = Do not display any errors
;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
;   On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = Off

“php怎么屏蔽錯誤提示”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

东乡| 故城县| 临湘市| 德保县| 鹤庆县| 慈利县| 文登市| 天长市| 焉耆| 定边县| 济阳县| 墨江| 五莲县| 敦煌市| 苏州市| 凤庆县| 尉犁县| 新巴尔虎右旗| 绥棱县| 顺昌县| 西充县| 镇坪县| 青海省| 吴堡县| 宁河县| 伊宁县| 广河县| 玉门市| 五华县| 奉化市| 石景山区| 铁岭市| 德令哈市| 姚安县| 建湖县| 土默特右旗| 睢宁县| 洛扎县| 磐安县| 洪雅县| 龙井市|