declare

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

 
?php

 
declare

 
(

 
directive

 
)

 
statement

 
?





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

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 .

 
PRE

 
?php

 
/

 
/

 
Un

 
fonction

 
qui

 
enregistre

 
l'

 
heure

 
agrave

 
;

 
laquelle

 
elle

 
est

 
appel

 
eacute;e

 
function

 
profile($dump

 
=

 
FALSE)

 
{

 
static

 
$profile

 
;

 
/

 
/

 
Retourne

 
les

 
horaires

 
stock

 
eacute;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

 
eacute;claration

 
profile()

 
;

 
/

 
/

 
Ex

 
eacute;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

 
eacute;

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