declare
Das
Sprachkonstrukt
declare
Das
Sprachkonstrukt
declare
wird
dazu
verwendet
,
um
Ausführungsdirektiven
für
einen
Codeblock
anzugeben
.
Die
Schreibweise
von
declare
ist
der
anderer
Kontrollstrukturen
ähnlich
:
Die
Directive
gibt
Ihnen
die
Möglichkeit
,
das
Verhalten
des
declare
-Blocks
zu
bestimmen
.
Zur
Zeit
wird
nur
eine
Direktive
erkannt
:
die
ticks
(
Weiter
unten
finden
Sie
mehr
Informationen
zu
den
ticks
)
.
Der
Anweisung
steil
des
declare
-Blocks
wird
ausgeführt
-
wie
genau
diese
Ausführung
passiert
und
welche
Nebeneffekte
während
der
Ausführung
auftreten
,
hängt
von
der
Direktive
ab
,
die
Sie
im
directive
-Block
angegeben
haben
.
Ticks
Ein
tick
ist
ein
Ereigniss
,
das
bei
jedem
N
-ten
Autreten
der
low-level
Anweisungen
innerhalb
des
declare
Ein
tick
ist
ein
Ereigniss
,
das
bei
jedem
N
-ten
Autreten
der
low-level
Anweisungen
innerhalb
des
declare
Blocks
,
die
vom
Parser
ausgeführt
werden
,
auftritt
.
Der
Wert
von
N
wird
durch
die
Angabe
von
ticks=
N
innerhalb
des
declare
-Blocks
in
dem
directive
Abschnitt
bestimmt
.
Das
Ereignis
/
die
Ereignisse
,
die
bei
jedem
tick
eintreten
,
legen
Sie
mit
der
Funktion
register_tick_function(
)
fest
.
Weitere
Einzelheiten
können
Sie
dem
Beispiel
unten
entnehmen
.
Beachten
Sie
,
dass
mehr
als
ein
Ereigniss
für
jeden
tick
eintreten
kann
.
Beispiel
12-1
.
Profil
eines
Bereichs
von
PHP
Code
?php
/
/
Funktion
,
die
bei
Aufruf
die
Zeit
aufzeichnet
function
profile
(
$dump
=
FALSE
)
{
static
$profile
;
/
/
Rückgabe
der
gespeicherten
Zeit
aus
profile
,
danach
löschen
if
($dump
)
{
$temp
=
$profile
;
unset
($profile)
;
return
($temp)
;
}
$profile[
]
=
microtime
()
;
}
/
/
Einen
tick
handler
bestimmen
register_tick_function("profile")
;
/
/
Funktion
vor
dem
declare-Block
initialisieren
profile
()
;
/
/
Ausführen
eines
Code-Blocks
,
jede
2te
Anweisung
löst
einen
tick
aus
declare
(ticks=2
)
{
for
($x
=
1
;
$x
50
;
++$x
)
{
echo
similar_text
(md5($x)
,
md5($x*$x))
,
"
br
/
;"
;
}
}
/
/
Ausgabe
der
gespeicherten
Daten
aus
dem
Profiler
print_r
(profile
(TRUE))
;
?
|
|
Dieses Beispiel 'profiliert' den PHP Code der im
'declare'-Block steht, indem die Zeit festgehalten wird, zu der
jede zweite low-level Anweisung im Codeblock ausgeführt wird.
Diese Information können Sie dazu benutzen, langsame Bereiche
innerhalb bestimmter Codesegmente zu idebtifizieren. Das
gleiche Ziel können Sie auch mit anderen Methoden erreichen:
die Benutzung von ticks ist bequemer und einfacher zu
implementieren.
Ticks
sind
gut
für
Debugging
,
einfaches
Multitasking
,
Hintergrund
I
/
O
und
viele
andere
Aufgaben
geeignet
.
Siehe
auch
register_tick_function(
)
und
unregister_tick_function(
)
.