Функсияи register_tick_function

Функсияи register_tick_function имкон медиҳад, ки функсияе сабт карда шавад, ки дар ҳар як тики иҷрои скрипт даъват карда мешавад. Параметри якум номи функсия ё функсияи анонимӣ мегирад, параметрҳои минбаъда - аргументҳо барои функсияе, ки интиқол дода мешавад. Барои кори функсия зарур аст, ки тикҳо бо воситаи declare(ticks=N) фаъол карда шаванд, ки дар он N - шумораи тикҳо байни даъватҳост.

Синтаксис

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

Намуна

Намунаи соддаи сабти функсия барои иҷро дар ҳар як тик:

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

Натиҷаи иҷрои рамз:

phpTick executed
Tick executed
Tick executed
Tick executed

Намуна

Истифодаи функсияи анонимӣ бо параметрҳо:

php<?php
  declare(ticks=2);
  
  register_tick_function(function($msg) {
    echo $msg . "\n";
  }, "Tick!");
  
  for ($i = 0; $i < 5; $i++) {
    // Як чанд рамз
  }
?>

Натиҷаи иҷрои рамз:

phpTick!
Tick!

Намуна

Бекор кардани сабти функсия бо воситаи unregister_tick_function:

php<?php
  declare(ticks=1);
  
  function tick_log() {
    echo date('H:i:s') . "\n";
  }
  
  register_tick_function('tick_log');
  
  // Қисми якуми рамз
  $a = 10;
  $b = 20;
  
  unregister_tick_function('tick_log');
  
  // Қисми дуюми рамз
  $c = $a + $b;
?>

Натиҷаи иҷрои рамз:

php14:25:03
14:25:03

Инчунин нигаред

  • функсияи unregister_tick_function,
    ки сабти функсияро барои иҷро дар тикҳо бекор мекунад