PHP Conference Japan 2024

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_clear_error清除通訊端的錯誤或最後一個錯誤碼

說明

socket_clear_error(?Socket $socket = null): void

此函式會清除指定通訊端的錯誤碼,如果未指定通訊端,則清除全域最後一個通訊端錯誤。

此函式允許明確地重設通訊端或擴充全域最後一個錯誤碼的錯誤碼值。這在應用程式的某個部分中偵測是否發生錯誤時可能很有用。

參數

socket

socket_create() 建立的 Socket 實例。

回傳值

無回傳值。

更新日誌

版本 說明
8.0.0 socket 現在是一個 Socket 實例;以前它是一個 資源
8.0.0 socket 現在可以為 null。

參見

新增筆記

使用者貢獻的筆記 2 則筆記

raphael at engenhosweb dot com dot br
13 年前
您也可以使用匿名函式來做到這一點
<?php
$socket
= @socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or function() {
$errstr = socket_strerror(socket_last_error());
echo (
"建立 socket 失敗: " . $errstr);
socket_clear_error();
};
?>
ludvig dot ericson at gmail dot com
18 年前
如果您想用少量程式碼清除錯誤,可以參考大多數人在 SQL 查詢檢查中使用的類似技巧:
<?php
$result
= mysql_query($sql) or die(/* 任何程式碼 */);
?>

它看起來像這樣
<?php
if (!($socket = socket_create(/* 任何程式碼 */)) {
echo (
"建立 socket 失敗: " . socket_strerror(socket_last_error()) and socket_clear_error());
}
?>

如您所見,我在這裡使用 "and" 而不是 "or",因為第一部分始終會回傳 true,因此如果您使用 or,PHP 的惰性布林檢查將不會執行最後一部分,而如果第一部分為 true,則使用 and 會執行最後一部分。
To Top