@ 2014-02-22T01:15:49Z <?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) {
$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.4.0 - 5.4.45 , 5.5.24 - 5.5.35 , 5.6.8 - 5.6.28 , 7.0.0 - 7.0.20 , 7.1.0 - 7.1.7 , 7.2.29 - 7.2.33 , 7.3.12 - 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.7 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 5.3.0 - 5.3.29 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
Fatal error: Function name must be a string in /in/HjsG9 on line 33
Process exited with code 255 . 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/HjsG9 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/HjsG9 on line 11
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error in /in/HjsG9 on line 11
Process exited with code 255 . preferences:dark mode live preview
218.02 ms | 401 KiB | 311 Q