@ 2014-02-22T01:16:36Z <?php
function run_test($name, $callback) {
$result = $callback();
echo "ran '$name' with result ", var_export($result, true), "\n";
}
$method1 = function($test) {
return function () use ($test) {
if (method_exists($test, 'setup')) {
$test->setup();
}
};
};
$method2 = function($test) {
$func = method_exists($test, 'setup')
? function() use ($test) { $test->setup(); }
: function () {};
return function () use ($func) {
$func();
};
};
$method3 = function($test) {
$test = method_exists($test, 'setup')
? array($test, 'setup')
: function () {};
return function () use ($test) {
call_user_func($test);
};
};
class Foo {}
class Bar {
function setup() {}
}
run_test('foo1', $method1(new Foo()));
run_test('bar1', $method1(new Bar()));
run_test('foo2', $method2(new Foo()));
run_test('bar2', $method2(new Bar()));
run_test('foo3', $method3(new Foo()));
run_test('bar3', $method3(new Bar()));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.38 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.25 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 ran 'foo1' with result NULL
ran 'bar1' with result NULL
ran 'foo2' with result NULL
ran 'bar2' with result NULL
ran 'foo3' with result NULL
ran 'bar3' with result NULL
Output for 4.4.2 - 4.4.9 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Parse error: syntax error, unexpected T_FUNCTION in /in/gS3ja on line 11
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 , 5.0.0 - 5.0.5 Parse error: parse error, unexpected T_FUNCTION in /in/gS3ja on line 11
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error in /in/gS3ja on line 11
Process exited with code 255 . preferences:dark mode live preview
268.1 ms | 401 KiB | 425 Q