<?php
class bench {
public function a() { return 1; }
public static function b() { return 1; }
}
$s = microtime(1);
for ($i = 0; $i < 100000; $i++) bench::a();
$e = microtime(1);
echo "Dynamic Static Method: ".($e - $s)."\n";
$s = microtime(1);
for ($i = 0; $i < 100000; $i++) bench::b();
$e = microtime(1);
echo "Declared Static Method: ".($e - $s)."\n";
$s = microtime(1);
$bench = new bench;
for ($i = 0; $i < 100000; $i++) $bench->a();
$e = microtime(1);
echo "Dynamic called Method: ".($e - $s)."\n";
?>
Result:
Dynamic Static Method: 0.27507710456848
Declared Static Method: 0.11795783042908
Dynamic called Method: 0.10040712356567
As you can see a static declared static called method is faster than a dynamic static called method, but the full dynamic is faster! ;)