declare 結構用來設定一段代碼的執行指令,它的語法結構如下:
declare (directive)
statement
不懂?通俗解釋如下:
ticks參數表示運行多少語句調用一次register_tick_function的函數。
register_tick_function函數定義了每個tick事件發生時的處理函數。那麼什麼是tick事件呢?
tick是一個事件。
tick事件在PHP每執行N條低級語句就發生一次,N由declare語句指定。
可以用register_tick_function()來指定tick事件發生時應該執行的操作。
問題又來了,什麼是低級語句呢?它包括:
簡單語句:空語句(就一個;號),return, break, continue, throw, goto, global, static, unset, echo, 內置的HTML文本,分號結束的表達式等均算一個語句。
復合語句:完整的if/elseif, while, do...while, for, foreach, switch, try...catch等算一個語句。
語句塊:{} 括出來的語句塊。
最後特別的:declare塊本身也算一個語句(按道理declare塊也算是復合語句,但此處特意將其獨立出來)。
看一個簡單的例子:
/**
* declare
* @link http://www.111cn.net
*/
function do_tick()
{
echo "<font color=red>do_tick</font>";
}
register_tick_function('do_tick');
declare(ticks = 1)
{
for($i = 1; $i < 5; $i++)
{
echo "<font color=blue>{$i}</font><br>";
}
}
上面這段程序的運行結果:
PHP declare控制符及ticks詳細教程對結果解釋下:
第一次進入for循環,執行echo後執行第一次do_tick函數;
第一次for循環結束後;執行第二次do_tick函數;
循環四次......;
第五次進行for循環,條件不滿足,for循環結束,執行一次do_tick函數;
declare本身也是一條語句,也要執行一次do_tick函數。
從上可以看出,declare和ticks可以用來做調試或性能測試。