PHP Conference Nagoya 2025

socket_clear_error

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

socket_clear_errorLimpa o erro no soquete ou o último código de erro

Descrição

socket_clear_error(?Socket $socket = null): void

Essa função limpa o código de erro ocorrido no soquete ou o último erro de soquete global se nenhum for especificado.

Essa função permite redefinir explicitamente o valor do código de erro de um soquete ou do último código de erro global da extensão. Isso pode ser útil para detectar, dentro de uma parte da aplicação, se um erro ocorreu ou não.

Parâmetros

socket

Uma instância de Socket criada com socket_create().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 socket agora pode ser nulo.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
0
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();
};
?>
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.
To Top