<?php
class Foo {
public function __construct() {
switch (func_num_args()) {
case 2:
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
break;
case 4:
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
var_dump(func_get_arg(2));
var_dump(func_get_arg(3));
break;
default:
throw new Exception('Wrong number of arguments');
break;
}
}
}
new Foo('foo', 'bar');
new Foo('foo', 'bar', 'baz', 'qux');
new Foo('foo', 'bar', 'baz');
string(3) "foo"
string(3) "bar"
string(3) "foo"
string(3) "bar"
string(3) "baz"
string(3) "qux"
Fatal error: Uncaught exception 'Exception' with message 'Wrong number of arguments' in /in/SBkN2:17
Stack trace:
#0 /in/SBkN2(25): Foo->__construct('foo', 'bar', 'baz')
#1 {main}
thrown in /in/SBkN2 on line 17
Process exited with code 255.
Output for 5.0.3 - 5.0.4
string(3) "foo"
string(3) "bar"
string(3) "foo"
string(3) "bar"
string(3) "baz"
string(3) "qux"
Fatal error: Uncaught exception 'Exception' with message 'Wrong number of arguments' in /in/SBkN2:17
Stack trace:
#0 /in/SBkN2(17): Foo::__construct()
#1 /in/SBkN2(25): Foo->__construct('foo', 'bar', 'baz')
#2 {main}
thrown in /in/SBkN2 on line 17
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/SBkN2 on line 4
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/SBkN2 on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/SBkN2 on line 4
Process exited with code 255.