sapi_windows_set_ctrl_handler
CTRLイベント のハンドラを設定したり削除したりする
説明
bool sapi_windows_set_ctrl_handler(callablenull $handler
, bool $add
= true
)
パラメータ
-
handler
-
設定したり削除したりするコールバック関数。
設定した場合、この関数は
CTRL
C
や
CTRL
BREAK
イベントが発生した場合にいつでも呼び出されます。
関数のシグネチャは次のとおりです:
void handler(int $event
)
-
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 "You have pressed CTRL+C\n";
break;
case PHP_WINDOWS_EVENT_CTRL_BREAK:
echo "You have pressed CTRL+BREAK\n";
break;
}
}
sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // ハンドラがトリガできるように無限ループにする
?>
参考
- sapi_windows_generate_ctrl_event