declare 命令は、あるコードブロックの中に
    実効命令をセットするために使用されます。declare
    の文法は他の制御構造と似ています。
    
   
    命令の箇所で、セットされた
    declareブロックの挙動を指定することが出来ます。
    現在のところ、使用できる命令はticksの
    一つだけです。(
    ticksに関しては以下を参照してください)
   
    declareブロックの文
    の実行のされ方や実行時にどのような作用が起こるかについては
    命令に何が指定されたかに依存します。
   
    declare構造はグローバルスコープしても使用され、
    それはそれ以降のコード上の全てにおいて影響します。
    
   
    tickとはdeclareブロックの実行中にパーサが
    N個の低レベル命令を実行するごとに
    発生するイベントのことです。Nの値は
    declareブロックの命令の箇所で
    ticks=Nのように
    指定します。
   
    tickごとに発生させるイベントはregister_tick_function()
    を使用して指定します。詳細は以下の例を参照してください。1回のtickで
    複数のイベントが起こり得ることに注意してください。
   
    
例 16-3. PHPのコードの一部をプロファイルする 
<pre> <?php // 呼び出されるとその時間を記録する関数 function profile ($dump = FALSE) {     static $profile;
      // 格納されたプロファイルを返し、その値を削除する     if ($dump) {         $temp = $profile;         unset($profile);         return $temp;     }
      $profile[] = microtime(); }
  // tickハンドラの設定 register_tick_function("profile");
  // declareブロックの前で初期化しておく profile ();
  // 2命令ごとにtickを投げるように設定しブロックを実行する declare (ticks=2) {     for ($x = 1; $x < 50; ++$x) {         echo similar_text (md5($x), md5($x*$x)), "<br />";     } }
  // プロファイラに格納されたデータを表示する print_r (profile(TRUE)); ?> </pre>
 |  
  | 
    この例では、'declare'ブロックのコード中で2個の低レベル
    命令が実行されるごとにその時間を記録してプロファイルを
    行っています。この情報はコードのあるセクションの中で
    遅い箇所を探すのに使用できます。この処理は他の手法でも
    使用できます。ticksを使用することで実装が簡単になる
    場合が多々あるのです。
   
    ticksはデバッグ、単純なマルチタスク処理、バックグラウンドI/Oや
    その他多くの処理を実装するのに便利です。
   
    register_tick_function()と
    unregister_tick_function()も参照してください。