PHP 8.0.0 Released!

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0)

sapi_windows_set_ctrl_handlerCTRLイベント のハンドラを設定したり削除したりする

説明

sapi_windows_set_ctrl_handler ( callable $callable [, bool $add = TRUE ] ) : bool

CTRL イベントのハンドラを設定したり削除したりします。 これによって、Windows の CLI プロセスが、 CTRL+CCTRL+BREAK イベントに割り込んだり、無視したり出来るようになります。 マルチスレッド環境では、この操作はメインスレッドからのみ可能です。

パラメータ

callable

設定したり削除したりするコールバック関数。 設定した場合、この関数は CTRL+C または CTRL+BREAK イベントが発生した場合にいつでも呼び出されます。 関数のシグナチャは次のとおりです:

handler ( int $event ) : void
event
受け取った CTRL イベント; PHP_WINDOWS_EVENT_CTRL_C または PHP_WINDOWS_EVENT_CTRL_BREAK
NULLcallable に設定すると、 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); // ハンドラがトリガできるように無限ループにする
?>

参考

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top