(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
socket_clear_error — Elimina todos los errores generados previamente por un socket
Elimina todos los códigos de error que han sido registrados para el socket
socket, o bien para el socket general.
socket_clear_error() permite restablecer a cero los códigos de error de un socket o del socket global. Esto puede ser útil para detectar la aparición de un error durante una parte de la aplicación.
No se retorna ningún valor.
| Versión | Descripción |
|---|---|
| 8.0.0 |
socket ahora es una instancia de Socket ;
anteriormente, era un resource .
|
| 8.0.0 |
socket ahora es nullable.
|
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();
};
?>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.