socket_last_error

Returns the last error on the socket

&reftitle.description; `int` `socket_last_error` ``Socket``null```socket`&null;

If a `Socket` instance is passed to this function, the last error which occurred on this particular socket is returned. If `socket` is &null;, the error code of the last failed socket function is returned. The latter is particularly helpful for functions like `socket_create` which don't return a socket on failure and `socket_select` which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to `socket_strerror` which returns a string describing the given error code.

If no error had occurred, or the error had been cleared with `socket_clear_error`, the function returns `0`.

&reftitle.parameters;

`socket`

- A `Socket` instance created with `socket_create`.

&reftitle.returnvalues;

This function returns a socket error code.

&reftitle.changelog;

&Version; | &Description;
&sockets.changelog.socket-param;
8.0.0 | `socket` is nullable now.

&reftitle.examples;

### `socket_last_error` example

    <?php
    $socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    if ($socket === false) {
        $errorcode = socket_last_error();
        $errormsg = socket_strerror($errorcode);

        die("Couldn't create socket: [$errorcode] $errormsg");
    }
    ?>

&reftitle.notes;

`socket_last_error` does not clear the error code, use `socket_clear_error` for this purpose.