staticに関するrez2のブックマーク (1)

  • PHP :: static を使って関数をメモ化する [Tipsというかメモ]

    php では、下記のように static を使って返り値を記憶しておくことができます。 <?php function hoge() { static $ret = null; if ($ret !== null) return $ret; /** * * 大きなリソースを消費する何か複雑な処理が書かれるとする。 * * : * : * * ただし、この関数が呼ばれたタイミングや状態によって、返り値が変化する場合は * この手法(メモ化)は使えない。 * 同一プロセス内で何度呼ばれても返り値が同一の場合のみ有効。 * * 例えば、この関数内で下記のように、実行する時刻によって * 何か変化がある場合はNG * * $mode = 1; * if (date('g') > 10) { * $mode = 2; * } */ $ret = $result; // $result: 処理した結果を

  • 1