制御構造
PHP Manual

declare

declare 命令は、あるコードブロックの中に 実効命令をセットするために使用されます。declare の文法は他の制御構造と似ています。

declare (命令)
 文

命令の箇所で、セットされた declareブロックの挙動を指定することが出来ます。 現在のところ、使用できる命令はticksの 一つだけです。( ticksに関しては以下を参照してください)

declareブロックの の実行のされ方や実行時にどのような作用が起こるかについては 命令に何が指定されたかに依存します。

declare構造はグローバルスコープしても使用され、 それはそれ以降のコード上の全てにおいて影響します。

<?php
// 以下は同じです:

// you can use this:
declare(ticks=1) {
    
// ここに全てのスクリプトを書く
}

// or you can use this:
declare(ticks=1);
    
// ここに全てのスクリプトを書く
?>

ticks

警告

PHP 5.3.0 で tick は非推奨となりました。 PHP 6.0.0 で削除される予定です。

tickとはdeclareブロックの実行中にパーサが N個の低レベル命令を実行するごとに 発生するイベントのことです。Nの値は declareブロックの命令の箇所で ticks=Nのように 指定します。

tickごとに発生させるイベントはregister_tick_function() を使用して指定します。詳細は以下の例を参照してください。1回のtickで 複数のイベントが起こり得ることに注意してください。

例1 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()も参照してください。


制御構造
PHP Manual
[お役立ちリンク集] NPO法人の設立(東京・大阪) 人材派遣・アルバイト 不動産・賃貸・マンション ハイブリッド派遣 堺市の入院・内科 京都市のインプラント 会社設立 産業廃棄物収集運搬業許可 風俗営業許可(バー・キャバクラ等) ディレクトリ1 | ディレクトリ2 | ディレクトリ3 | ディレクトリ4 | ディレクトリ5 | ディレクトリ6 | ディレクトリ7 | ディレクトリ8 | ディレクトリ9 | ディレクトリ10 | ディレクトリ11 | ディレクトリ12 | ディレクトリ13 | ディレクトリ14 | ディレクトリ15 | ディレクトリ16 | ディレクトリ17 | ディレクトリ18 | ディレクトリ19 | ディレクトリ20 | ディレクトリ21 | ディレクトリ22 | ディレクトリ23 | ディレクトリ24 | ディレクトリ25 | ディレクトリ26 | ディレクトリ27 | ディレクトリ28 | ディレクトリ29 | ディレクトリ30 | ディレクトリ31 | ディレクトリ32 | ディレクトリ33 | ディレクトリ34 | ディレクトリ35 | 人材派遣・アルバイト | 人材派遣・アルバイト | ディレクトリ36 |