2010-03-14 47 views
26

我对PHP函数declare有点困惑。PHP使用Declare?什么是勾号?

单一刻度究竟是什么?我认为tick等于一行代码?

但是,如果使用:

function myfunc() { 
     print "Tick"; 
} 

register_tick_function("myfunc"); 

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

脚本打印:

“嘀” 2个时代?

回答

22

你会得到每行的勾号;每块{} 试一下:

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

没有块,没有多余的蜱。

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

更多无关块=更多滴答声。 PS:顺便说一下,蜱是相当奇特的功能,它们只在极少数情况下有用。它们不等同于线程或任何东西。如果对你来说,蜱是问题的解决方案,那么你应该在另一个问题上提出你的问题,因为它可能不是正确的解决方案。

+11

什么*可* *刻度可用于? – Pacerier 2013-07-05 14:26:27

+1

调试过程中的分析代码。 – thomasrutter 2013-12-23 09:25:43

+0

@thomasrutter如何?你能举个例子还是参考? – tonix 2016-06-22 06:53:40

14

你正处在正确的轨道上,它是什么。

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

简单地说,蜱是,PHP内部发生已执行的语句一定数量 每个 一次特殊事件 。这些语句是PHP内部的 ,并且与脚本中的语句松散地对应 。您 可以控制它 需要多少语句中使用的 声明()函数来衬托打勾,你可以当 蜱使用 register_tick_function()函数发生 寄存器的功能来执行。由于 已经提到, 声明的语法非常不寻常,所以准备好 以备不时之需!

+1

谢谢。我发现奇怪的是,php.net手册没有在declare()和* _tick_function()函数中定义tick。你知道他们为什么在PHP6中被删除吗? – David 2012-09-11 16:03:36

+1

蜱如何进入PHP? – Pacerier 2013-07-05 14:27:38

+0

@Jayrox - 支持您的声明的任何支持性证据“PHP6 ticks将被彻底删除”理论? – Jimbo 2013-09-13 09:39:17