socket_clear_error
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
socket_clear_error — Очищает ошибку на сокете или последний код ошибки
Описание
void socket_clear_error
([ resource
$socket
] )Эта функция очищает код ошибки на указанном сокете или последнюю глобальную ошибку сокета, если сокет не указан.
Эта функция позволяет принудительно сбросить значение кода ошибки для сокета или последний глобальный код ошибки расширения. Это может быть полезно для определения в части приложения, произошла ошибка или нет.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Смотрите также
- socket_last_error() - Возвращает последнюю ошибку на сокете
- socket_strerror() - Возвращает строку, описывающую ошибку сокета
- socket_accept
- socket_bind
- socket_clear_error
- socket_close
- socket_cmsg_space
- socket_connect
- socket_create_listen
- socket_create_pair
- socket_create
- socket_get_option
- socket_getopt
- socket_getpeername
- socket_getsockname
- socket_import_stream
- socket_last_error
- socket_listen
- socket_read
- socket_recv
- socket_recvfrom
- socket_recvmsg
- socket_select
- socket_send
- socket_sendmsg
- socket_sendto
- socket_set_block
- socket_set_nonblock
- socket_set_option
- socket_setopt
- socket_shutdown
- socket_strerror
- socket_write
Коментарии
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.
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();
};
?>