Lundi 08 Septembre 2008 
Homepage
   Ordre alphabétique
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
   Par catégories
Moteur (139)
Annuaire (1384)
Spécialisé (466)
Payant (42)
   Par pays
   Par langue
   PHP - MYSQL
Manuel PHP
Manuel MYSQL
Portion de code
   Outils webmasters
Générer Méta-tags
Générer .htaccess
   Partenaires
Bouches du rhone
Camargue
Arles
Cybersaladelle
Arles-Inform
Vietnam
 
declare

L'élément de langage declare sert à ajouter des directives d'exécutions dans un bloc de code. La syntaxe de declare est similaire à la syntaxe des autres fonctions de contrôle :

Exemple - Instruction directive
declare (directive)
commandes

L'expression directive permet de contrôler l'intervention du bloc declare. Actuellement, une seule directive est reconnue : la directive ticks (Voir plus bas pour plus de détails) sur les ticks).

L'expression commandes du bloc de declare sera exécutée. Comment elle sera exécutée, et quels effets cela aura dépend de la directive utilisée dans le bloc directive.

La structure declare peut aussi être utilisée dans le contexte global. Elle affecte alors tout le code qui la suit :

Exemple - Instruction directive en contexte global
<?php
// Ces déclaration sont identiques.

// Vous pouvez utiliser ceci
declare(ticks=1) {
// script entier ici
}

// ou ceci
declare(ticks=1);
// script entier ici
?>


Ticks

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 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.

Exemple - Profiler une section de code PHP
<?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 />";
}
}

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


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éboguer, 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 register_tick_function() et unregister_tick_function().

Copyright © 2001-2006 The PHP Group. All rights reserved.
 
   Menu
Ajouter un moteur
Faire un lien
Annuaire
   Ressources
Ban 468 x 60
Ban 234 x 60
Ban 120 x 60
Logo 88 x 31
Templates
Textures
Police de caractère
Gifs animés
Cliparts
Avatars
Icones
   Gifs animés
Animaux
Alimentation
Personnage
Transport
Sport
Musique
Nature
Objet
   Cliparts
Cuisine
Enfants
Femmes
Machines
Mains
Medecine
Ordinateurs
   Services divers
Programme TV
Sortie Cinéma
Sortie DVD
 
Copyright © 2006. Universurf. All rights reserved
Cybersaladelle.com - Camargue.net - Bouches-du-rhone.com - LesAlpilles.com - Arles-camargue.com - Universmicro.com
Les-saintes-maries-de-la-mer.com - Lessaintesmariesdelamer.com - Camargue-Arles.com - Camargue.org - Mejanes.com
Universurf.com - Universurf.fr - Universurf.net - Universurf.ch