SommaireTelecharger la documentationChapitre suivantChapitre precedent  

 
Raccourci :  
Les structures de contrôle

if
else
elseif
Syntaxe alternative
while
do..while
for
foreach
break
continue
switch
declare
Ticks
Require()
Include()
Require_once()
Include_once()

7.3.12.1 Ticks
[Notes en ligne] 

Un tick est un événement qui intervient toutes les N commandes bas niveau, exécutées par l'analyseur dans le bloc de declare. La valeur de N est spécifiée avec la syntaxe ticks=N dans le bloc de directive declare.
Un événement qui intervient à chaque tick est spécifié avec la fonction @xref{function.register-tick-function,,register_tick_function()}. Reportez vous à l'exemple ci-dessous pour plus de détails. Notez que plus d'un événement peut intervenir par tick.

<PRE>
<?php
// Un fonction qui enregistre l'heure à laquelle elle est appelée
  function profile($dump = FALSE){
    static $profile;
    // Retourne les horaires stockés dans le profile, et l'efface
    if ($dump) {
        $temp = $profile;
        unset ($profile);
        return ($temp);
    }
    $profile[] = microtime ();
  }
// Enregistre un gestionnaire de tick
  register_tick_function("profile");
// Initialise la fonction avant le bloc de déclaration
  profile();
// Exécute un bloc de code, et appele un tick toutes les deux secondes
  declare (ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br>";
    }
  }
?>
     

Pour voir le résultat :

<?php
// Affiche les données de la variable $profile
  print_r(profile(TRUE));
?>
</pre>
     

Cet exemple profile le code PHP dans le bloc de déclaration, et enregistre l'heure de chaque commande bas niveau. Cette information peut être réutilisée pour débusquer les segments de code lents. Vous pouvez implémenter d'autres méthodes, mais les ticks sont plus rapides et plus efficaces.
Les ticks sont bien pratiques pour débugger, implémenter un multi-tâches simple, des entrées sorties en tâche de fond, ou bien d'autres choses, avec PHP.
Voir aussi @xref{function.register-tick-function,,register_tick_function()} et @xref{function.unregister-tick-function,,unregister_tick_function()}.


Chapitre précédentChapitre suivantAccueil nexen.net