declare

מבנה ה - declare משמש לקביעת הוראת הפעלה לגבי בלוק מסויים . התחביר דומה לתחביר של מבני-בקרה אחרים :






חלק ה - directive ( הוראה ) מאפשר את קביעת התנהגות בלוק ה - declare . לעת עתה , ההוראה היחידה שקיימת היא הוראת ה - ticks . (קראו בהמשך למידע נוסף על הוראת ticks ותחבירה )

חלק ה - statement בפקודת declare הוא פקודה או בלוק של פקודות שיורצו . פרמטר ה - directive יקבע את אופן ההרצה של הפקודות ותופעות נוספות שמתלוות להרצתו .

Ticks

ארוע ה-ticks מתרחש כל N פעמים שרצה פקודה ברמה הנמוכה ( low-level ) על-ידי המפרש בבלוק שהוגדר לכך בפקודת declare . הערך של N הוא פרמטר שמועבר לפקודת ה - declare על-ידי הוראה בצורת ticks= N .

הפעולות שיתבצעו בעקבות כל ארוע tick יקבעו על-ידי הפונקציה register_tick_function( ) . קראו בדוגמה הבאה למידע נוסף . שימו לב לכך שאפשר לבצע יותר מאירוע אחד לכל tick .

דוגמה 11-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))

 
,

 
"

 
lt;br

 
gt

 
;"

 
;

 
    }

 
}

 
/

 
/

 
Display

 
the

 
data

 
stored

 
in

 
the

 
profiler

 
print_r

 
(profile

 
(TRUE))

 
;

 
?

 
/

 
pre



הדוגמה בעצם מנתחת את הקוד המוגדר בבלוק ב-'declare' על-ידי הקלטת הזמן לאחר כל הרצת כל פקודה שנייה ברמה הנמוכה. מידע זה יכול לשמש לצורך בדיקת מהירות הביצוע באיזורים שונים בקוד מסויים. ניתן לבצע תהליך כזה גם בשיטות אחרות אך השימוש ב-ticks הוא הנוח ביותר להשמה.

הוראת ticks מיועדת לניפוי שגיאות , ישום ריבוי משימות פשוט , ביצוע מטלות פלט\קלט ברקע ועוד המון משימות אחרות .

קראו גם על פונקציות register_tick_function( ) ו - unregister_tick_function( ) .