【发布时间】:2015-09-18 10:57:44
【问题描述】:
代码:
declare(ticks=1);
function tick_handler(){
echo "tick_handler() called\n";
}
register_tick_function('tick_handler');
$a = 1;
if($a < 2){
// $a += 2;
}
当我运行这段代码时,它会打印四次tick_handler() called。我认为$a = 1 会打印一次tick_handler() called,但为什么会打印四次。
如果我更改第一行代码:
declare(ticks = 2)
它将像以前一样打印相同的结果。 在php文档中,它说:
A tick is an event that occurs for every N low-level tickable statements executed by the parser within the declare block
所以我认为如果ticks = 2,它会打印两次,但事实并非如此。
现在,我不知道它是如何工作的。
【问题讨论】: