在一些 PHP 內建函數(例如mkdir
)中,在前面加上 @可以屏蔽該函數拋出的錯誤
那麼自訂函數要如何實現這一點呢?
我試了下throw new Exception
和trigger_error
都無法被@屏蔽
是這樣的,例如我想寫一個JsonFile::get()
方法,當文件不存在時拋個錯、路徑非法時拋個錯、解碼失敗時拋個錯,並返回false
當使用者在意錯誤訊息時可以自行捕捉並處理;當不在意錯誤訊息只希望得到檔案內容或 false (失敗)時,可以 @JsonFile::get()
這樣調用
主要也是為了方便嘛。請問如何實作這樣的自訂方法(或函數)呢?
或者說我這樣的思路不太好?有沒有既方便又合理的實作方法呢?
在一些 PHP 內建函數(例如mkdir
)中,在前面加上 @可以屏蔽該函數拋出的錯誤
那麼自訂函數要如何實現這一點呢?
我試了下throw new Exception
和trigger_error
都無法被@屏蔽
是這樣的,例如我想寫一個JsonFile::get()
方法,當文件不存在時拋個錯、路徑非法時拋個錯、解碼失敗時拋個錯,並返回false
當使用者在意錯誤訊息時可以自行捕捉並處理;當不在意錯誤訊息只希望得到檔案內容或 false (失敗)時,可以 @JsonFile::get()
這樣調用
主要也是為了方便嘛。請問如何實作這樣的自訂方法(或函數)呢?
或者說我這樣的思路不太好?有沒有既方便又合理的實作方法呢?
首先要保證文法沒問題,然後好像跟 throw new Exception和trigger_error 沒關係了,上碼:
<code><?php function test($abc){ mysql_connect("localhost", "用户名错误", "密码错误"); } function test2($abc){ mysql_connect("localhost", "用户名错误", "密码错误"); } test("abc"); @test2("abc"); ?></code>
Warning: mysql_connect() [function.mysql-connect]: Access denied for user '使用者名稱錯誤'@'localhost' (using password: YES) in D:Projectsns1.php on line 4
word: YES) in D:Projectsns1.php on line 4word: YES) in D:Projectsns1.php on line 4
🎜test2沒有拋出 Warning.🎜