本文目錄一覽:
php @這個符號,什麼意思,什麼功能。
它會抑制錯誤消息。
PHP支持一個錯誤控制操作符:at符號(@)。當添加到PHP中的表達式時,該表達式可能生成的任何錯誤消息都將被忽略。
如果已將自定義錯誤處理程序函數設置為SET錯誤處理程序()然後它仍然會被調用,但是這個自定義錯誤處理程序可以(而且應該)調用錯誤報告()當觸發錯誤的調用前面有@.時,它將返回0。
@符號是差錯控制操作者(又稱“沉默”或“關閉”操作員)。它使PHP禁止由關聯表達式生成的任何錯誤消息(注意、警告、致命等)。它的工作原理就像一個一元運算符,例如,它具有優先性和結合性。
擴展資料
錯誤控制運算符顧名思義就是用來控制錯誤輸出,這個控制只是將錯誤信息屏蔽掉,不讓其顯示出來,並不是真正的解決錯誤。
經常在程序中使用某些函數出現一些不必要的錯誤信息時,可以使用該運算符進行屏蔽,前提是這個錯誤信息不影響程序的運行。如果對一些影響程序運算的錯誤,不推薦使用錯誤控制符,這樣不利於消除程序的錯誤。
下面看一下錯誤控制運算符的使用實例:
當打開一個不存在的文件時,用“@”來屏蔽錯誤信息的輸出;
在不使用“@”時;
?php
$open_file = fopen(“index.php”,”r”);
?
會有以下的輸出:
上面是一個警告錯誤信息提示,大致的意思提示我們index.php”這個文件不存在。錯誤信息在第三行…
php中為什麼有時候要加個@符號?
1.隱藏異常
2.對語句可能會出現的異常而又不想顯示出來時使用,比如操作數據庫時
$query=@mysql_query($sql);
3.使用@時,如果出錯則不容易發現錯誤在哪。
php中 錯誤抑制運算符 怎麼顯示變量未定義錯誤
夢行回答PHP 支持一個錯誤控制運算符:@。當將其放置在一個 PHP 表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉。
如果激活了 track_errors 特性,表達式所產生的任何錯誤信息都被存放在變量 $php_errormsg 中。此變量在每次出錯時都會被覆蓋,所以如果想用它的話就要儘早檢查。
當將@放在一個PHP表達式之前時,這個表達式可能產生的任何警告信息都將被忽略掉。但是使用 錯誤控制運算符@是需要注意,它只對表達式有效。說得容易懂一點就是:如果從一個地方得到了一個值,我們就可以將@話在它的前面。比方說,把@話在變量、常量和函數調用的前面。值得大家注意的是,不能把這個錯誤控制運算符@放在函數或者是類的定義之前,也不可以用在條件結構等。
php的錯誤控制運算符是不是相當於java的異常
不是,@是錯誤抑制符號,本質是在生成的opcode中增加begin_silence將錯誤屏蔽,
php的異常處理也是try throw catch,php有個Exception基類。
//自定義的異常類,繼承了PHP的異常基類Exception
class MyException extends Exception {
function getInfo() {
return ‘自定義錯誤信息’;
}
}
try {
//使用異常的函數應該位於 “try” 代碼塊內。如果沒有觸發異常,則代碼將照常繼續執行。但是如果異常被觸發,會拋出一個異常。
throw new MyException(‘error’);//這裡規定如何觸發異常。注意:每一個 “throw” 必須對應至少一個 “catch”,當然可以對應多個”catch”
} catch(Exception $e) {//”catch” 代碼塊會捕獲異常,並創建一個包含異常信息的對象
echo $e-getInfo();//獲取自定義的異常信息
echo $e-getMessage();//獲取繼承自基類的getMessage信息
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151948.html