PHP Conference Japan 2024

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+C` 和 `CTRL+BREAK` 事件。請注意,在多執行緒環境中,只有從主執行緒呼叫時才能執行此操作。

參數

handler

一個用於設定或移除的回呼函式。如果設定了,每當發生 CTRL +C CTRL +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