declare

The declare construct is used to is used to set execution directives for a block of code . The syntax of declare is similiar to the syntax of other flow control constructs :






The statement part of the declare block will be executed - how it is executed and what side-effects occur during execution may depend on the directive set in the directive block .

Ticks

The event( s ) that occurs on each tick is specified using the register_tick_function( ) .

Voorbeeld 12-1 .

 
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



The example profiles the PHP code within the 'declare' block, recording the time at which every second low-level statement in the block was executed. This information can then be used to find the slow areas within particular segments of code. This process can be performed using other methods: using ticks is more convenient and easier to implement.