declare 结构用来设定一段代码的执行指令,它的语法结构如下:
declare (directive)
statement
不懂?通俗解释如下:
ticks参数表示运行多少语句调用一次register_tick_function的函数。
register_tick_function函数定义了每个tick事件发生时的处理函数。那么什么是tick事件呢?
tick是一个事件。
tick事件在PHP每执行N条低级语句就发生一次,N由declare语句指定。
可以用register_tick_function()来指定tick事件发生时应该执行的操作。
问题又来了,什么是低级语句呢?它包括:
简单语句:空语句(就一个;号),return, break, continue, throw, goto, global, static, unset, echo, 内置的HTML文本,分号结束的表达式等均算一个语句。
复合语句:完整的if/elseif, while, do...while, for, foreach, switch, try...catch等算一个语句。
语句块:{} 括出来的语句块。
最后特别的:declare块本身也算一个语句(按道理declare块也算是复合语句,但此处特意将其独立出来)。
看一个简单的例子:
代码如下 | 复制代码 |
/** * declare * @link http://www.111cn.net */ function do_tick() { echo "<font color=red>do_tick</font>"; } register_tick_function('do_tick'); declare(ticks = 1) { for($i = 1; $i < 5; $i++) { echo "<font color=blue>{$i}</font><br>"; } } |
上面这段程序的运行结果:
PHP declare控制符及ticks详细教程对结果解释下:
第一次进入for循环,执行echo后执行第一次do_tick函数;
第一次for循环结束后;执行第二次do_tick函数;
循环四次......;
第五次进行for循环,条件不满足,for循环结束,执行一次do_tick函数;
declare本身也是一条语句,也要执行一次do_tick函数。
从上可以看出,declare和ticks可以用来做调试或性能测试。