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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

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

發(fā)布時(shí)間:2023/12/19 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php抑制错误,PHP 行内错误抑制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

顯示行號(hào)

|

選擇喜歡的代碼風(fēng)格

默認(rèn)

GitHub

Dune

LakeSide

Plateau

Vibrant

Blue

Eighties

Tranquil

你可以讓 PHP 利用錯(cuò)誤控制操作符 @ 來(lái)抑制特定的錯(cuò)誤。將這個(gè)操作符放置在表達(dá)式之前,其后的任何錯(cuò)誤都不會(huì)出現(xiàn)。

看如下 PHP 代碼:

echo @$foo['bar'];

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

這看起來(lái)像是個(gè)好主意,不過(guò)也有一些討厭的代價(jià)。PHP 處理使用 @ 的表達(dá)式比起不用時(shí)效率會(huì)低一些。過(guò)早的性能優(yōu)化在所有程序語(yǔ)言中也許都是爭(zhēng)論點(diǎn),不過(guò)如果性能在你的應(yīng)用程序 / 類庫(kù)中占有重要地位,那么了解錯(cuò)誤控制操作符的性能影響就比較重要。

其次,錯(cuò)誤控制操作符會(huì) 完全 吃掉錯(cuò)誤。不但沒(méi)有顯示,而且也不會(huì)記錄在錯(cuò)誤日志中。此外,在正式環(huán)境中 PHP 也沒(méi)有辦法關(guān)閉錯(cuò)誤控制操作符。也許你認(rèn)為那些錯(cuò)誤時(shí)無(wú)害的,不過(guò)那些較具傷害性的錯(cuò)誤同時(shí)也會(huì)被隱藏。

如果有方法可以避免錯(cuò)誤抑制符,你應(yīng)該考慮使用,舉例來(lái)說(shuō),上面的程序代碼可以這樣重寫:

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

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

xdebug.scream = On

前面我們提到在正式的 PHP 環(huán)境中沒(méi)有辦法關(guān)閉錯(cuò)誤控制操作符。但是 Xdebug 有一個(gè) xdebug.scream 的 ini 配置項(xiàng),可以關(guān)閉錯(cuò)誤控制操作符。你可以按照下面的方式修改 php.ini。

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

「Scream」這個(gè) PHP 擴(kuò)展提供了和 xDebug 類似的功能,只是 Scream 的 ini 設(shè)置項(xiàng)叫做 scream.enabled 。

當(dāng)你在調(diào)試代碼而錯(cuò)誤信息被隱藏時(shí),這是最有用的方法。請(qǐng)務(wù)必小心使用 scream ,而是把它當(dāng)作暫時(shí)性的調(diào)試工具。有許多的 PHP 函數(shù)類庫(kù)代碼也許無(wú)法在錯(cuò)誤抑制操作符停用時(shí)正常使用。

PHP 錯(cuò)誤處理擴(kuò)展閱讀

發(fā)表評(píng)論

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。