<?php
class test {
public $a;
public function __call($method, $args) {
call_user_func_array([$this->a, $method], $args);
}
public function foo() {
print 123;
}
}
$a = new test();
$b = new test();
$b->a = $a;
$b->foo();
$b->bar();
123
Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, first array member is not a valid class name or object in /in/5TTaS:7
Stack trace:
#0 /in/5TTaS(7): test->__call('bar', Array)
#1 /in/5TTaS(19): test->__call('bar', Array)
#2 {main}
thrown in /in/5TTaS on line 7
Process exited with code 255.
Output for 8.0.0 - 8.0.9
123
Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, first array member is not a valid class name or object in /in/5TTaS:7
Stack trace:
#0 /in/5TTaS(7): test->__call('bar', Array)
#1 /in/5TTaS(19): test->__call('bar', Array)
#2 {main}
thrown in /in/5TTaS on line 7
Process exited with code 255.
123
Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in /in/5TTaS on line 7
Parse error: syntax error, unexpected '[', expecting ')' in /in/5TTaS on line 7
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[', expecting ')' in /in/5TTaS on line 7
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/5TTaS 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/5TTaS 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/5TTaS on line 4
Process exited with code 255.