sapi_windows_set_ctrl_handler
(PHP 7 >= 7.4.0)
sapi_windows_set_ctrl_handler — CTRLイベント のハンドラを設定したり削除したりする
説明
sapi_windows_set_ctrl_handler
( callable $callable
[, bool $add
= true
] ) : bool
CTRL
イベントのハンドラを設定したり削除したりします。
これによって、Windows の CLI プロセスが、
CTRL+C
や CTRL+BREAK
イベントに割り込んだり、無視したり出来るようになります。
マルチスレッド環境では、この操作はメインスレッドからのみ可能です。
パラメータ
callable
設定したり削除したりするコールバック関数。 設定した場合、この関数は
CTRL+C
またはCTRL+BREAK
イベントが発生した場合にいつでも呼び出されます。 関数のシグナチャは次のとおりです:handler ( int
$event
) : voidevent
-
受け取った
CTRL
イベント;PHP_WINDOWS_EVENT_CTRL_C
またはPHP_WINDOWS_EVENT_CTRL_BREAK
null
をcallable
に設定すると、CTRL+C
イベント をプロセスに無視させますが、CTRL+BREAK
イベントは無視しません。add
true
に設定し、ハンドラを設定します。false
の場合、ハンドラは削除されます。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 基本的な sapi_windows_set_ctrl_handler() 関数の使い方
以下の例は、 CTRL
イベント にどのように割り込むかを示しています。
<?phpfunction 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); // ハンドラがトリガできるように無限ループにする?>