PHP Conference Nagoya 2025

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, созданный при помощи функции socket_create().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия Описание
8.0.0 Теперь параметр socket ожидает экземпляр класса Socket; раньше параметр ожидал ресурс (resource).
8.0.0 socket теперь допускает значение null.

Смотрите также

  • socket_last_error() - Возвращает последнюю ошибку сокета
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета

Добавить

Примечания пользователей 2 notes

up
0
ludvig dot ericson at gmail dot com
18 years ago
If you want to clear your error in a small amount of code, do a similar hack as to what most people do in SQL query checking,
<?php
$result
= mysql_query($sql) or die(/* Whatever code */);
?>

It could look like this:
<?php
if (!($socket = socket_create(/* Whatever code */)) {
echo (
"Failed to create socket: " . socket_strerror(socket_last_error()) and socket_clear_error());
}
?>

As you can see, I use "and" here instead of "or" since the first part will always return true, thus if you use or PHP's lazy boolean checking will not execute the last part, which it will with an and if the first part is true.
up
-1
raphael at engenhosweb dot com dot br
13 years ago
You can do this too, with anonymous function:
<?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();
};
?>
To Top