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.
参数
callable
A callback function to set or remove. If set, this function will be called whenever a
CTRL+C
orCTRL+BREAK
event occurs. The function is supposed to have the following signature:handler ( int
$event
) : voidevent
-
The
CTRL
event which has been received; eitherPHP_WINDOWS_EVENT_CTRL_C
orPHP_WINDOWS_EVENT_CTRL_BREAK
.
Setting a
null
callable
causes the process to ignoreCTRL+C
events, but notCTRL+BREAK
events.add
If
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?>