CakeFest 2024: The Official CakePHP Conference

socket_clear_error

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

socket_clear_errorLöscht entweder einen Fehler oder den letzten Fehlercode eines Sockets

Beschreibung

socket_clear_error(?Socket $socket = null): void

Diese Funktion löscht entweder einen Fehlercode für einen gegebenen Socket oder global den letzten Socket-Fehler, wenn kein Socket angegeben wurde.

Mit dieser Funktion kann der Wert eines Fehlercodes explizit zurückgesetzt werden, entweder ein Fehlercode für einen bestimmten Socket oder global der Code des letzten Fehlers innerhalb dieser Extension. Dies kann ganz nützlich sein, wenn man prüfen möchte, ob in einem Teil einer Anwendung ein Fehler aufgetreten ist.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version Beschreibung
8.0.0 socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 socket ist nun ein Nullable-Typ.

Siehe auch

add a note

User Contributed Notes 2 notes

up
0
raphael at engenhosweb dot com dot br
12 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
-1
ludvig dot ericson at gmail dot com
17 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