メソッドの呼び出しの違い
スタティックなメソッド呼び出しと
インスタンスを生成してメソッドを呼び出す場合の違い
以前にちょっとどれぐらい処理に差があるか
気になったので調べてみた
因みにphpのバージョンは5.1.6
書いたコードは以下
<?php class Hoge { function fuga() { return; } } // スタティックな呼び出し $time_start = microtime(true); for($i = 0; $i < 10000;$i++) { Hoge::fuga(); } $time_end = microtime(true); $time = $time_end - $time_start; echo $time.'<br />'; // インスタンス生成した呼び出し $hoge = new Hoge(); $time_start = microtime(true); for($i = 0; $i < 10000;$i++) { $hoge->fuga(); } $time_end = microtime(true); $time = $time_end - $time_start; echo $time;
┃スタティックコール ┃インスタンス生成 ┃ 01┃0.062727928161621┃0.023082971572876┃ 02┃0.063868999481201┃0.023293972015381┃ 03┃0.062108993530273┃0.022778987884521┃ 04┃0.064042091369629┃0.023115873336792┃ 05┃0.062854051589966┃0.023226022720337┃ 07┃0.063203096389771┃0.02252197265625 ┃ 08┃0.062053918838501┃0.022697925567627┃ 09┃0.061697959899902┃0.022702217102051┃ 10┃0.062878131866455┃0.022661924362183┃
大体3倍の差がありました
これ初めて結果を見たときはびっくりしました
逆にした場合もほぼ変わらない感じです