Συνάρτηση register_tick_function

Η συνάρτηση register_tick_function επιτρέπει την εγγραφή μιας συνάρτησης, η οποία θα καλείται σε κάθε tick εκτέλεσης του script. Ως πρώτη παράμετρο δέχεται το όνομα της συνάρτησης ή μια ανώνυμη συνάρτηση, οι επόμενες παράμετροι - τα ορίσματα για τη συνάρτηση που μεταβιβάζεται. Για τη λειτουργία της συνάρτησης είναι απαραίτητο να ενεργοποιηθούν τα ticks με τη βοήθεια της declare(ticks=N), όπου N - ο αριθμός των ticks μεταξύ των κλήσεων.

Σύνταξη

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

Παράδειγμα

Απλό παράδειγμα εγγραφής συνάρτησης για εκτέλεση σε κάθε 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;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

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,
    που ακυρώνει την εγγραφή συνάρτησης για εκτέλεση σε ticks