(PHP 7 >= 7.4.0, PHP 8)
sapi_windows_set_ctrl_handler — 设置或移除 CTRL 事件处理程序
设置或移除 CTRL
事件处理程序,它允许 Windows CLI 进程拦截或忽略 CTRL+C
和 CTRL+BREAK
事件。请注意,在多线程环境中,只有在从主线程调用时才有可能。
handler
要设置或移除的回调函数。如果设置,此函数将在每次发生 CTRL+C
或 CTRL+BREAK
事件时被调用。该函数应该具有以下签名
event
CTRL
事件;PHP_WINDOWS_EVENT_CTRL_C
或 PHP_WINDOWS_EVENT_CTRL_BREAK
。
null
handler
会导致进程忽略 CTRL+C
事件,但不忽略 CTRL+BREAK
事件。
add
示例 #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); // 无限循环,以便可以触发处理程序
?>