有這樣一段代碼
<?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後開始的,並非從代碼第一行開始時算起