Funcția register_tick_function

Funcția register_tick_function permite înregistrarea unei funcții, care va fi apelată la fiecare tick de execuție a scriptului. Primul parametru primește numele funcției sau o funcție anonimă, parametrii următori - argumente pentru funcția transmisă. Pentru ca funcția să funcționeze este necesar să fie activate tick-urile cu ajutorul declare(ticks=N), unde N - numărul de tick-uri între apeluri.

Sintaxă

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

Exemplu

Un exemplu simplu de înregistrare a unei funcții pentru execuție la fiecare tick:

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

Rezultatul executării codului:

phpTick executat
Tick executat
Tick executat
Tick executat

Exemplu

Utilizarea unei funcții anonime cu parametri:

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

Rezultatul executării codului:

phpTick!
Tick!

Exemplu

Anularea înregistrării funcției cu unregister_tick_function:

php<?php
  declare(ticks=1);
  
  function tick_log() {
    echo date('H:i:s') . "\n";
  }
  
  register_tick_function('tick_log');
  
  // Prima parte a codului
  $a = 10;
  $b = 20;
  
  unregister_tick_function('tick_log');
  
  // A doua parte a codului
  $c = $a + $b;
?>

Rezultatul executării codului:

php14:25:03
14:25:03

Vedeți și