PHP使用Declare?什么是勾?

时间:2010-03-14 07:23:49

标签: php declare

我对PHP函数declare感到有点困惑。

究竟什么是单​​一的?我以为tick等于一行代码?

但如果我使用:

function myfunc() {
        print "Tick";   
}

register_tick_function("myfunc");

declare(ticks=1) {
   echo 'foo!bar';
}

脚本打印:

“勾选”2次??

2 个答案:

答案 0 :(得分:23)

每行都有一个勾号;和每个块{} 试试这个:

declare(ticks=1) echo 'foo!bar';

没有阻止,没有额外的勾选。

declare(ticks=1) {{ echo 'foo!bar'; }}

更多无关的块=更多的滴答声。

PS:顺便说一句,刻度线是非常奇特的功能,它们只适用于少数非常罕见的情况。它们不等同于线程或任何东西。如果,对你来说,滴答声是问题的解决方案,那么你应该在另一个问题上发布你的问题,因为它可能不是正确的解决方案。

答案 1 :(得分:16)

你是在正确的轨道上找到了什么。

http://www.tuxradar.com/practicalphp/4/21/0

  

简单地说,勾选是一个特殊事件   这在PHP内部发生   它执行了一定数量的时间   的陈述。这些陈述是   PHP内部和松散对应   到脚本中的语句。您   可以控制多少语句   需要使用。来设置勾号   declare()函数,你可以   注册函数在a时执行   通过使用蜱发生   register_tick_function()函数。如   已经提到过,语法为   声明非常不寻常,所以要做好准备   感到震惊!