2024 年 PHP 大会日本站

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 +C CTRL +BREAK 事件时,将调用此函数。该函数应具有以下签名

handler(int $event): void
event
已接收的 CTRL 事件;要么是 PHP_WINDOWS_EVENT_CTRL_C,要么是 PHP_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