Funktionen register_tick_function

Funktionen register_tick_function låter dig registrera en funktion som kommer att anropas på varje tick under skriptets exekvering. Den tar funktionens namn eller en anonym funktion som första parameter, och efterföljande parametrar är argument för den överförda funktionen. För att funktionen ska fungera måste ticks aktiveras med declare(ticks=N), där N är antalet tick mellan anrop.

Syntax

phpregister_tick_function(callable $function, mixed ...$args);

Exempel

Ett enkelt exempel på registrering av en funktion för exekvering på varje tick:

php<?php
  declare(ticks=1);
  
  function tick_handler() {
    echo "Tick executed\n";
  }
  
  register_tick_function('tick_handler');
  
  $a = 1;
  $b = 2;
  $c = $a + $b;
?>

Resultat av kodkörning:

phpTick executed
Tick executed
Tick executed
Tick executed

Exempel

Användning av en anonym funktion med parametrar:

php<?php
  declare(ticks=2);
  
  register_tick_function(function($msg) {
    echo $msg . "\n";
  }, "Tick!");
  
  for ($i = 0; $i < 5; $i++) {
    // En del kod
  }
?>

Resultat av kodkörning:

phpTick!
Tick!

Exempel

Avregistrering av en funktion med unregister_tick_function:

php<?php
  declare(ticks=1);
  
  function tick_log() {
    echo date('H:i:s') . "\n";
  }
  
  register_tick_function('tick_log');
  
  // Första delen av koden
  $a = 10;
  $b = 20;
  
  unregister_tick_function('tick_log');
  
  // Andra delen av koden
  $c = $a + $b;
?>

Resultat av kodkörning:

php14:25:03
14:25:03

Se även