「内部的にstaticな変数」の実験
ちょいとお仕事がドッタンバッタンなので、ギア入りっぱなしのまま書いているので本気で備忘録。
読み取れる方は適宜読み取ってくださりませ。
実験コード。
<?php function hoge() { static $i = 0; $i ++; var_dump($i); } // hoge(); hoge(); hoge();
うんまぁわかりきった結果。
<?php class foo { function hoge() { static $i = 0; $i ++; var_dump($i); } } // $obj = new foo(); $obj->hoge(); $obj->hoge(); $obj->hoge();
これもガッテン承知の助。
で、確認したいのは、以下。
<?php class foo { function hoge() { static $i = 0; $i ++; var_dump($i); } } // $obj = new foo(); $obj->hoge(); $obj->hoge(); $obj2 = new foo(); $obj2->hoge(); $obj2->hoge();
[gallu@localhost ~]$ php ttt.php
int(1)
int(2)
int(3)
int(4)
あぁ、繋がるのか。
ふむ…念のために確認。
<?php class foo { function hoge() { static $i = 0; $i ++; var_dump($i); } } class bar extends foo { } // $obj = new foo(); $obj->hoge(); $obj->hoge(); // $obj2 = new bar(); $obj2->hoge(); $obj2->hoge();
[gallu@localhost ~]$ php ttt.php
int(1)
int(2)
int(1)
int(2)
あ、はがれた。
内部的に「[クラス名+]関数名」でテーブルかなんか持ってる感じなのかな?
まぁいいや。とりあえず、いくつか「メモリ&DBアクセス的にチューニングしたい」項目があったんだけど、使えそうなので。