declare
מבנה ה-declare משמש לקביעת הוראת הפעלה לגבי בלוק מסויים. התחביר דומה לתחביר של מבני-בקרה אחרים:
declare (directive) statement
חלק ה-directive (הוראה) מאפשר את קביעת התנהגות בלוק ה-declare. לעת עתה, ההוראה היחידה שקיימת היא הוראת ה-ticks. (קראו בהמשך למידע נוסף על הוראת ticks ותחבירה)
חלק ה-statement בפקודת declare הוא פקודה או בלוק של פקודות שיורצו. פרמטר ה-directive יקבע את אופן ההרצה של הפקודות ותופעות נוספות שמתלוות להרצתו.
Ticks
ארוע ה-ticks מתרחש כל N פעמים שרצה פקודה ברמה הנמוכה (low-level) על-ידי המפרש בבלוק שהוגדר לכך בפקודת declare. הערך של N הוא פרמטר שמועבר לפקודת ה-declare על-ידי הוראה בצורת ticks=N.
הפעולות שיתבצעו בעקבות כל ארוע tick יקבעו על-ידי הפונקציה register_tick_function(). קראו בדוגמה הבאה למידע נוסף. שימו לב לכך שאפשר לבצע יותר מאירוע אחד לכל tick.
Example#1 ניתוח של קוד PHP
<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 מיועדת לניפוי שגיאות, ישום ריבוי משימות פשוט, ביצוע מטלות פלט\קלט ברקע ועוד המון משימות אחרות.
קראו גם על פונקציותregister_tick_function() ו- unregister_tick_function().