欧美性猛交xxx嘿人猛交_又色又爽又高潮免费观看_精品国产一区二区三区久久影院_青娱乐极品视觉盛宴国产视频

技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

php 忽略錯誤符號@ or die()用法范例及注意事項

作者:admin    時間:2013-6-7 10:35:13    瀏覽:

在php程序運行時,如果某語句出現錯誤,則會在網頁上顯示錯誤信息,但是有時候,我們并不希望顯示這個錯誤信息,而是忽略它,取而代之的是顯示其他提示信息。這就需要用到@ or die()這個語法了。不過在使用這個語法之前,我們需要弄明白一些事情,因為有時候使用它你會得到意想不到的后果。

php忽略錯誤符號 @

@是php語言里的一個忽略錯誤的字符,當將其放置在一個 PHP 表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉。例如:

@include("file.php");

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

另外,@通常是與or die()一同使用,例如:

(@include("file.php"))
 OR die("Could not find file.php!");

上述語句的意思是,如果包含file.php不成功的話,比如file.php文件不存在時,則在網頁上打印“Could not find file.php!”,并且立即停止程序的執行。

如果沒有加@這個字符,那么當include("file.php")返回錯誤時,網頁上打印的是:

Warning: include(file.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening 'file.php' for inclusion (include_path='.;C:\php5\pear')

有關or die()一些用法

die()函數大家用得很熟了,不過or die()這樣的寫法,所產生的一些效果你也許還不知道。

首先理解下die()。

◆die定義和用法

die() 函數輸出一條消息,并退出當前腳本。

◆語法

die(status)

status 必需。規定在退出腳本之前寫入的消息或狀態號。狀態號不會被寫入輸出。

如果 status 是字符串,則該函數會在退出前輸出字符串。

如果 status 是整數,這個值會被用作退出狀態。退出狀態的值在 0 至 254 之間。退出狀態 255 由 PHP 保留,不會被使用。狀態 0 用于成功地終止程序。

注:如果 PHP 的版本號大于等于 4.2.0,那么在 status 是整數的情況下,不會輸出該參數。

◆php or die() 語句

經常看到這樣的語句:

$file = fopen($filename, 'r') or die("抱歉,無法打開: $filename");

or在這里是這樣理解的,因為在PHP中并不區分數據類型,所以$file既可以是int也可以bool,所以這樣的語句不會報錯。但其處理過程可能有些朋友不大明白。 其實在大多數的語言中, bool or bool這樣的語句中,如果前一個值為真后一個值就不會再判斷了。這里也是的,所以如果fopen函數執行正確的話,會返回一個大于0的int值(這其實就是"真"),后面的語句就不會執行了。如果fopen函數執行失敗,就會返回false,那么就會判斷后面的表達式是否為真了。 結果執行了die()之后,不管返回什么,程序都已經停止執行了,并且顯示指定的出錯信息,也就達到了調試的目的。 就這樣。

通常與錯誤管理一起使用的兩個函數是die()和exit()(嚴格說來,它們是語言構造而不是函數,但是誰在意這些呢)。當在腳本中調用die()和exit()時,將會終止整個腳本。它們都可用于阻止腳本繼續執行,而使得某些重要的操作(如建立一條數據庫連接)不會發生。你還可以給die()和exit()傳遞一個將在瀏覽器中打印出來的字符串。

通常可以看到在OR條件語句中使用die()和exit()。例如

include('config.inc.php') OR die ('Could not open the file. ');

在包含這樣一行代碼之后,如果PHP不能包含配置文件,將會執行die()語句,并且會打印could not open the file消息。

!defined('CURSCRIPT') && define('CURSCRIPT', ");//意思是如果沒定義CURSCRIPT常量,則定義CURSCRIPT為空.

在全書和PHP手冊中,你將會看到它的各種變體,因為它是一種處理錯誤的快捷方式(但可能處理過度),而無需使用自定義的錯誤處理程序。

其實die和exit是等價的,用來終止當前腳本,常用在調試程序的時候。參考php斷點調試的幾種方法討論

php @ 忽略錯誤需謹慎使用

目前的“@”錯誤控制運算符前綴甚至使導致腳本終止的嚴重錯誤的錯誤報告也失效。這意味著如果在某個不存在或者敲錯了字母的函數調用前用了“@”來抑制錯誤信息,那腳本會沒有任何跡象顯示原因而死在那里。例如:

@include("file.php");

這樣的語法,當返回錯誤時,程序會立即停止,不再會執行此語句后面的語句,但是網頁上會是一片空白。這將會給我們檢查程序帶來很大的麻煩。

因此,在使用@忽略錯誤時,務必同時加上or die()來打印相印的錯誤描述。

標簽: @  or  die  
相關文章
    x