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

参见

添加注释

用户贡献的注释 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 (
"创建套接字失败: " . $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_strerror(socket_last_error()) and socket_clear_error());
}
?>

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