기타 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
Windows CLI 프로세스가 CTRL+C 및 CTRL+BREAK 이벤트를 가로채거나 무시할 수 있도록 하는 CTRL 이벤트 처리기를 설정하거나 제거합니다. 다중 스레드 환경에서 이는 주 스레드에서 호출될 때만 가능합니다.
매개변수
handler
- 설정하거나 제거할 콜백 함수입니다. 설정하면
CTRL+C
또는CTRL+BREAK
이벤트가 발생할 때마다 이 함수가 호출됩니다. 함수에는 다음 서명이 있어야 합니다.handler(int
$event
): voidevent
- 수신된
CTRL
이벤트.PHP_WINDOWS_EVENT_CTRL_C
또는PHP_WINDOWS_EVENT_CTRL_BREAK
.
null
handler
를 설정하면 프로세스가CTRL+C
이벤트를 무시하지만CTRL+BREAK
이벤트는 무시하지 않습니다. add
true
이면 핸들러가 설정됩니다.false
이면 핸들러가 제거됩니다.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
Examples
예제 #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); // infinite loop, so the handler can be triggered
?>
기타
- sapi_windows_generate_ctrl_event() - 다른 프로세스에 CTRL 이벤트 보내기