3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Magic { private string $foo; private int $bar; public function __get($name) { return $this->$name; } public function __set($name, $value) { return $this->$name = $value; } } class ReflectionTest { private string $foo; private int $bar; } $m = new Magic; $start = microtime(true); for ($i=0;$i<100000;$i++) { $m->foo = 'foo'; $m->bar = 5; } printf('Magic Time taken: %0.4fs%s', microtime(true) - $start, PHP_EOL); $reflection = new ReflectionTest; $start = microtime(true); for ($i=0;$i<100000;$i++) { $foo = new \ReflectionProperty(ReflectionTest::class, 'foo'); $bar = new \ReflectionProperty(ReflectionTest::class, 'bar'); $foo->setAccessible(true); $bar->setAccessible(true); $foo->setValue($reflection, 'foo'); $bar->setValue($reflection, 5); } printf('Reflection Time taken: %0.4fs%s', microtime(true) - $start, PHP_EOL); $reflection = new ReflectionTest; $start = microtime(true); $foo = new \ReflectionProperty(ReflectionTest::class, 'foo'); $bar = new \ReflectionProperty(ReflectionTest::class, 'bar'); $foo->setAccessible(true); $bar->setAccessible(true); for ($i=0;$i<100000;$i++) { $foo->setValue($reflection, 'foo'); $bar->setValue($reflection, 5); } printf('Reflection Time (Cached) taken: %0.4fs%s', microtime(true) - $start, PHP_EOL);

preferences:
24.11 ms | 406 KiB | 5 Q