Função register_tick_function

A função register_tick_function permite registrar uma função que será chamada em cada tick de execução do script. O primeiro parâmetro aceita o nome da função ou uma função anônima, os parâmetros subsequentes - argumentos para a função passada. Para a função funcionar, é necessário ativar os ticks usando declare(ticks=N), onde N - o número de ticks entre as chamadas.

Sintaxe

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

Exemplo

Exemplo simples de registro de uma função para execução em cada tick:

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

Resultado da execução do código:

phpTick executado
Tick executado
Tick executado
Tick executado

Exemplo

Uso de função anônima com parâmetros:

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

Resultado da execução do código:

phpTick!
Tick!

Exemplo

Cancelando o registro da função com unregister_tick_function:

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

Resultado da execução do código:

php14:25:03
14:25:03

Veja também