日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php抑制错误,PHP 行内错误抑制

發布時間:2023/12/19 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php抑制错误,PHP 行内错误抑制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

顯示行號

|

選擇喜歡的代碼風格

默認

GitHub

Dune

LakeSide

Plateau

Vibrant

Blue

Eighties

Tranquil

你可以讓 PHP 利用錯誤控制操作符 @ 來抑制特定的錯誤。將這個操作符放置在表達式之前,其后的任何錯誤都不會出現。

看如下 PHP 代碼:

echo @$foo['bar'];

如果 $foo['bar'] 存在,程序會將結果輸出,如果變量 $foo 或是 'bar' 鍵值不存在,則會返回 null 并且不輸出任何東西。如果不使用錯誤控制操作符,這個表達式會產生一個錯誤信息 PHP Notice: Undefined variable: foo 或 PHP Notice: Undefined index: bar 。

這看起來像是個好主意,不過也有一些討厭的代價。PHP 處理使用 @ 的表達式比起不用時效率會低一些。過早的性能優化在所有程序語言中也許都是爭論點,不過如果性能在你的應用程序 / 類庫中占有重要地位,那么了解錯誤控制操作符的性能影響就比較重要。

其次,錯誤控制操作符會 完全 吃掉錯誤。不但沒有顯示,而且也不會記錄在錯誤日志中。此外,在正式環境中 PHP 也沒有辦法關閉錯誤控制操作符。也許你認為那些錯誤時無害的,不過那些較具傷害性的錯誤同時也會被隱藏。

如果有方法可以避免錯誤抑制符,你應該考慮使用,舉例來說,上面的程序代碼可以這樣重寫:

echo isset($foo['bar']) ? $foo['bar'] : '';

當 fopen() 載入文件失敗時,也許是一個使用錯誤抑制符的合理例子。你可以在嘗試載入文件前檢查是否存在,但是如果這個文件在檢查后才被刪除,而此時 fopen() 還未執行 (聽起來有點不太可能,例子似乎比較極端,但是確實會發生),這時 fopen() 會返回 false 并且 拋出操作。這也許應該由 PHP 本身來解決,但這時一個錯誤抑制符才能有效解決的例子。

xdebug.scream = On

前面我們提到在正式的 PHP 環境中沒有辦法關閉錯誤控制操作符。但是 Xdebug 有一個 xdebug.scream 的 ini 配置項,可以關閉錯誤控制操作符。你可以按照下面的方式修改 php.ini。

ini_set('xdebug.scream', '1')

「Scream」這個 PHP 擴展提供了和 xDebug 類似的功能,只是 Scream 的 ini 設置項叫做 scream.enabled 。

當你在調試代碼而錯誤信息被隱藏時,這是最有用的方法。請務必小心使用 scream ,而是把它當作暫時性的調試工具。有許多的 PHP 函數類庫代碼也許無法在錯誤抑制操作符停用時正常使用。

PHP 錯誤處理擴展閱讀

發表評論

總結

以上是生活随笔為你收集整理的php抑制错误,PHP 行内错误抑制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。