有这样一段代码
<?php
declare(ticks=1);
function tick_handler()
{
echo "d<br>";
}
register_tick_function('tick_handler');
$a ="中文";
print($a);
?>
实际上,上面的写法与下面相同
<?php
declare(ticks=1){
function tick_handler()
{
echo "d<br>";
}
register_tick_function('tick_handler');
$a ="中文";
print($a);
}
?>
运行结果为:
d
d
中文d
d
每一个ticks时钟周期会调用一次tick_handler(),声明tick_handler()函数时会调用一次,$a赋值时调用一次,print($a)后会调用一次,最后declare本身会调用一次
但是如果这样
<?php
function tick_handler(){
echo "d<br>";
}
register_tick_function('tick_handler');
declare(ticks=1){
$a ="中文";
print($a);
}
?>
第一个d就不会被打印出来,但是功能还是会实现,也就是说,1、declare中不是必须声明tick_handler;2、tick_handler的调用是从declare后开始的,并非从代码第一行开始时算起