萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP declare控制符及ticks的例子詳解

PHP declare控制符及ticks的例子詳解

declare是PHP的流程控制結構,directive目前支持兩個指令【ticks和encoding】,ticks的使用需配合register_tick_function函數(當然還有unregister_tick_function函數)使用。

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的例子詳解
PHP declare控制符及ticks詳細教程對結果解釋下:

第一次進入for循環,執行echo後執行第一次do_tick函數;
第一次for循環結束後;執行第二次do_tick函數;
循環四次......;
第五次進行for循環,條件不滿足,for循環結束,執行一次do_tick函數;
declare本身也是一條語句,也要執行一次do_tick函數。

從上可以看出,declare和ticks可以用來做調試或性能測試。

copyright © 萬盛學電腦網 all rights reserved