sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handler设置或移除 CTRL 事件处理程序

描述

sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool

设置或移除 CTRL 事件处理程序,它允许 Windows CLI 进程拦截或忽略 CTRL+CCTRL+BREAK 事件。请注意,在多线程环境中,只有在从主线程调用时才有可能。

参数

handler

要设置或移除的回调函数。如果设置,此函数将在每次发生 CTRL+CCTRL+BREAK 事件时被调用。该函数应该具有以下签名

handler(int $event): void
event
已接收的 CTRL 事件;PHP_WINDOWS_EVENT_CTRL_CPHP_WINDOWS_EVENT_CTRL_BREAK
设置 null handler 会导致进程忽略 CTRL+C 事件,但不忽略 CTRL+BREAK 事件。

add

如果为 true,则设置处理程序。如果为 false,则移除处理程序。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 基本 sapi_windows_set_ctrl_handler() 用法

此示例展示了如何拦截 CTRL 事件。

<?php
function ctrl_handler(int $event)
{
switch (
$event) {
case
PHP_WINDOWS_EVENT_CTRL_C:
echo
"您已按下 CTRL+C\n";
break;
case
PHP_WINDOWS_EVENT_CTRL_BREAK:
echo
"您已按下 CTRL+BREAK\n";
break;
}
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (
true); // 无限循环,以便可以触发处理程序
?>

参见

添加说明

用户贡献说明

此页面没有用户贡献说明。
To Top