Php/docs/function.sapi-windows-set-ctrl-handler
sapi_windows_set_ctrl_handler
(PHP 7 >= 7.4.0)
sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
说明
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.
参数
callableA callback function to set or remove. If set, this function will be called whenever a
CTRL+CorCTRL+BREAKevent occurs. The function is supposed to have the following signature:handler ( int
$event) : voidevent-
The
CTRLevent which has been received; eitherPHP_WINDOWS_EVENT_CTRL_CorPHP_WINDOWS_EVENT_CTRL_BREAK.
Setting a
nullcallablecauses the process to ignoreCTRL+Cevents, but notCTRL+BREAKevents.addIf
true, the handler is set. Iffalse, the handler is removed.
返回值
成功时返回 true, 或者在失败时返回 false。
范例
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?>