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 实例;以前,它是一个 resource
8.0.0 socket 现在可以为空。

参见

添加说明

用户贡献说明 2 个说明

0
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 (
"Failed to create socket: " . $errstr);
socket_clear_error();
};
?>
0
ludvig dot ericson at gmail dot com
18 年前
如果你想用少量代码清除错误,可以像大多数人在 SQL 查询检查中所做的那样进行类似的 hack,
<?php
$result
= mysql_query($sql) or die(/* Whatever code */);
?>

它看起来像这样
<?php
if (!($socket = socket_create(/* Whatever code */)) {
echo (
"Failed to create socket: " . socket_strerror(socket_last_error()) and socket_clear_error());
}
?>

如你所见,这里我使用 "and" 而不是 "or",因为第一部分总是返回 true,因此如果你使用 or,PHP 的延迟布尔值检查不会执行最后部分,而如果第一部分为 true,则使用 and 会执行最后部分。
To Top