(PHP 7 >= 7.4.0, PHP 8)
sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
   Sets or removes a CTRL event handler, which allows Windows
   CLI processes to intercept or ignore CTRL+C and
   CTRL+BREAK events. Note that in multithreaded environments,
   this is only possible when called from the main thread.
  
handler
      A callback function to set or remove. If set, this function will be called
      whenever a CTRL+C or CTRL+BREAK event
      occurs. The function is supposed to have the following signature:
      
$event): voideventCTRL event which has been received;
          either PHP_WINDOWS_EVENT_CTRL_C
          or PHP_WINDOWS_EVENT_CTRL_BREAK.
         
        null handler causes the process to ignore
      CTRL+C events, but not CTRL+BREAK events.
     
    add
      If true, the handler is set. If false, the handler is removed.
     
   Returns true on success or false on failure.
  
Example #1 Basic sapi_windows_set_ctrl_handler() Usage
     This example shows how to intercept CTRL events.
   
<?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
?>