(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
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); // 無限迴圈,以便觸發處理程式
?>