PHP 快速導覽 - 錯誤控制運算

直譯器會直接挑出語法錯誤 (syntax error) 結束程式執行,可是執行時期發生的錯誤並不會被直譯器挑出,甚至直譯器有可能默認錯誤存在而造成無法預期的結果。 PHP 定義 @ 為錯誤控制運算子 (error control operator) ,可防止印出預設的錯誤訊息並使程式繼續進行,搭配內建函數 (function) die() 可自訂顯示錯誤訊息。



舉例如下
<?php
$a = @($b * 22) or die("something wrong\n");
echo $a;

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:e11.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


錯誤控制運算子 @ 放在錯誤可能發生的運算式 (expression) 之前,後面接 or 運算子,當運算式回傳 False 時便會執行 or 後的 die()
$a = @($b * 22) or die("something wrong\n");


執行結果如下



常見的應用在開啟檔案時,如果指定檔名不存在就會中斷程式,若使用錯誤控制運算子便可使程式繼續進行,例如
<?php
$my_file = @file('a_file') or die("something wrong\n");

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:e12.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


a_file 為不存在的檔名,此例執行結果如下



中英文術語對照
語法錯誤syntax error
錯誤控制運算子error control operator
內建函數function
運算式expression


您可以繼續參考
運算式


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.operators.errorcontrol.php

沒有留言: