Php/docs/function.sapi-windows-set-ctrl-handler

From Get docs

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0)

sapi_windows_set_ctrl_handlerSet or remove a CTRL event handler


Description

sapi_windows_set_ctrl_handler ( callable $callable [, bool $add = TRUE ] ) : bool

Sets or removes a CTRL event handler, which allows Windows CLI processes to intercept or ignore CTRL+C and CTRL+BREAK events. Note that in multithreaded environments, this is only possible when called from the main thread.


Parameters

callable

A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs. The function is supposed to have the following signature:

handler ( int $event ) : void

event
The CTRL event which has been received; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.

Setting a NULL callable causes the process to ignore CTRL+C events, but not CTRL+BREAK events.

add

If TRUE, the handler is set. If FALSE, the handler is removed.


Return Values

Returns TRUE on success or FALSE on failure.


Examples

Example #1 Basic sapi_windows_set_ctrl_handler() Usage

This example shows how to intercept CTRL events.


<?phpfunction ctrl_handler(int $event){    switch ($event) {        case PHP_WINDOWS_EVENT_CTRL_C:            echo "You have pressed CTRL+C\n";            break;        case PHP_WINDOWS_EVENT_CTRL_BREAK:            echo "You have pressed CTRL+BREAK\n";            break;    }}sapi_windows_set_ctrl_handler('ctrl_handler');while (true); // infinite loop, so the handler can be triggered?>

See Also