3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function a(callable $callback) { } $r = new ReflectionFunction('a'); var_dump($r->getParameters(), $r->getParameters()[0]->isCallable());
Output for 7.0.0 - 7.1.0
array(1) { [0]=> object(ReflectionParameter)#2 (1) { ["name"]=> string(8) "callback" } } bool(true)
Output for hhvm-3.12.0
array(1) { [0]=> object(ReflectionParameter)#2 (3) { ["info"]=> array(9) { ["index"]=> int(0) ["name"]=> string(8) "callback" ["type"]=> string(8) "callable" ["type_hint"]=> string(8) "callable" ["type_hint_builtin"]=> bool(true) ["function"]=> string(1) "a" ["type_hint_nullable"]=> bool(false) ["attributes"]=> array(0) { } ["is_optional"]=> bool(false) } ["name"]=> string(8) "callback" ["paramTypeInfo"]=> array(3) { ["name"]=> string(8) "callable" ["nullable"]=> bool(false) ["builtin"]=> bool(true) } } } bool(true)
Output for hhvm-3.10.0
array(1) { [0]=> object(ReflectionParameter)#2 (2) { ["info"]=> array(7) { ["index"]=> int(0) ["name"]=> string(8) "callback" ["type"]=> string(8) "callable" ["type_hint"]=> string(8) "callable" ["function"]=> string(1) "a" ["attributes"]=> array(0) { } ["is_optional"]=> bool(false) } ["name"]=> string(8) "callback" } } bool(true)
Output for 5.4.0 - 5.6.28
array(1) { [0]=> &object(ReflectionParameter)#2 (1) { ["name"]=> string(8) "callback" } } bool(true)
Output for 5.1.0 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/eDZdO on line 8
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/eDZdO on line 8
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting ')' in /in/eDZdO on line 3
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting ')' in /in/eDZdO on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `')'' in /in/eDZdO on line 3
Process exited with code 255.