Fonction register_tick_function

La fonction register_tick_function permet d'enregistrer une fonction qui sera appelée à chaque tick d'exécution du script. Son premier paramètre accepte le nom d'une fonction ou une fonction anonyme, les paramètres suivants sont les arguments à passer à la fonction. Pour que la fonction fonctionne, il faut activer les ticks à l'aide de declare(ticks=N), où N est le nombre de ticks entre les appels.

Syntaxe

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

Exemple

Un exemple simple d'enregistrement d'une fonction pour exécution à chaque 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;
?>

Résultat de l'exécution du code :

phpTick executed
Tick executed
Tick executed
Tick executed

Exemple

Utilisation d'une fonction anonyme avec des paramètres :

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

Résultat de l'exécution du code :

phpTick!
Tick!

Exemple

Annulation de l'enregistrement d'une fonction avec unregister_tick_function :

php<?php
  declare(ticks=1);
  
  function tick_log() {
    echo date('H:i:s') . "\n";
  }
  
  register_tick_function('tick_log');
  
  // Première partie du code
  $a = 10;
  $b = 20;
  
  unregister_tick_function('tick_log');
  
  // Seconde partie du code
  $c = $a + $b;
?>

Résultat de l'exécution du code :

php14:25:03
14:25:03

Voir aussi