[phpstudy]PHP declare控制符及ticks的例子详解

更新时间:2019-05-11    来源:php常用代码    手机版     字体:

【www.bbyears.com--php常用代码】

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 "do_tick";
}
 
register_tick_function("do_tick");
 
declare(ticks = 1)
{
        for($i = 1; $i < 5; $i++)
        {
                echo "{$i}
";
        }
}


上面这段程序的运行结果:

PHP declare控制符及ticks的例子详解
PHP declare控制符及ticks详细教程对结果解释下:

第一次进入for循环,执行echo后执行第一次do_tick函数;
第一次for循环结束后;执行第二次do_tick函数;
循环四次......;
第五次进行for循环,条件不满足,for循环结束,执行一次do_tick函数;
declare本身也是一条语句,也要执行一次do_tick函数。

从上可以看出,declare和ticks可以用来做调试或性能测试。

本文来源:http://www.bbyears.com/jiaocheng/50518.html