3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Foo { public function load(string $file, array $keymap) {} public function write(string $file, array $keymap, array $data) {} private function validate(array $data) {} } $reflection = new \ReflectionClass('Foo'); var_dump($reflection->getMethods()); var_dump($reflection->getMethod('loads'));
based on GIZdG
Output for 7.0.0 - 7.2.6
array(3) { [0]=> object(ReflectionMethod)#2 (2) { ["name"]=> string(4) "load" ["class"]=> string(3) "Foo" } [1]=> object(ReflectionMethod)#3 (2) { ["name"]=> string(5) "write" ["class"]=> string(3) "Foo" } [2]=> object(ReflectionMethod)#4 (2) { ["name"]=> string(8) "validate" ["class"]=> string(3) "Foo" } } Fatal error: Uncaught ReflectionException: Method loads does not exist in /in/RntCF:15 Stack trace: #0 /in/RntCF(15): ReflectionClass->getMethod('loads') #1 {main} thrown in /in/RntCF on line 15
Process exited with code 255.
Output for hhvm-3.15.4
array(3) { [0]=> object(ReflectionMethod)#3 (2) { ["name"]=> string(4) "load" ["class"]=> string(3) "Foo" } [1]=> object(ReflectionMethod)#4 (2) { ["name"]=> string(5) "write" ["class"]=> string(3) "Foo" } [2]=> object(ReflectionMethod)#5 (2) { ["name"]=> string(8) "validate" ["class"]=> string(3) "Foo" } } Fatal error: Uncaught exception 'ReflectionException' with message 'Method Foo::loads() does not exist' in /in/RntCF:15 Stack trace: #0 (): ReflectionMethod->__construct() #1 /in/RntCF(15): ReflectionClass->getMethod() #2 {main}
Process exited with code 255.
Output for 5.6.0 - 5.6.30
array(3) { [0]=> &object(ReflectionMethod)#2 (2) { ["name"]=> string(4) "load" ["class"]=> string(3) "Foo" } [1]=> &object(ReflectionMethod)#3 (2) { ["name"]=> string(5) "write" ["class"]=> string(3) "Foo" } [2]=> &object(ReflectionMethod)#4 (2) { ["name"]=> string(8) "validate" ["class"]=> string(3) "Foo" } } Fatal error: Uncaught exception 'ReflectionException' with message 'Method loads does not exist' in /in/RntCF:15 Stack trace: #0 /in/RntCF(15): ReflectionClass->getMethod('loads') #1 {main} thrown in /in/RntCF on line 15
Process exited with code 255.