declare
De declare constructie wordt gebruikt om instructies te geven aan een blok code. De syntax van declare is gelijk aan dat van andere flow control constructies:
declare (instructie) statement
De instructie sectie stelt het gedrag van het declare blok in. Op dit moment wordt er slechts één instructie ondersteund: de ticks instructie. (Zie hieronder voor meer informatie over de ticks instructie)
De statement sectie van het declare blok zal uitgevoerd worden - hoe het wordt uitgevoerd en wat voor bijwerkingen er zullen optreden tijdens het uitvoeren kan afhangen van de instructie die is ingesteld in de instructie sectie.
Ticks
Een tick is een gebeurtenis die voorkomt om de N low-level statements die uitgevoerd zijn door de parser binnen het declare blok. De waarde van N is gespecificeerd met ticks=N in de instructie sectie van het declare blok.
De gebeurtenis(sen) op iedere tick is gespecificeerd met de register_tick_function() functie. Zie onderstaand voorbeeld voor meer details. Merk op dat er meer dan één gebeurtenis per tick kan voorkomen.
Example#1 Profile a section of PHP code
<pre>
<?php
// A function that records the time when it is called
function profile ($dump = FALSE)
{
static $profile;
// Return the times stored in profile, then erase it
if ($dump) {
$temp = $profile;
unset ($profile);
return ($temp);
}
$profile[] = microtime ();
}
// Set up a tick handler
register_tick_function("profile");
// Initialize the function before the declare block
profile ();
// Run a block of code, throw a tick every 2nd statement
declare (ticks=2) {
for ($x = 1; $x < 50; ++$x) {
echo similar_text(md5($x), md5($x*$x)), "<br>";
}
}
// Display the data stored in the profiler
print_r (profile (TRUE));
?>
</pre>
Ticks zijn erg geschikt voor debuggen, het implementeren van eenvoudig multitasken, achtergrond I/O en vele andere taken.
Zie ook register_tick_function() en unregister_tick_function().