<?php
class Foo
{
public function __invoke($a, $b)
{
echo "$a - $b\n";
}
}
class Bar
{
public $f;
public function __construct()
{
$this->f = new Foo;
}
}
$b = new Bar;
$f = $b->f;
$f('hello', 'world');
call_user_func($b->f, 'hello', 'world');
// i assume php assumes that f is a method here,
// so this fails! Bar::f() does not exist...
// $b->f('hello', 'world');
// php simply cannot parse this for whatever
// reason. seems like it shoudl be able to. :)
// ($b->f)('hello', 'world');
Fatal error: Function name must be a string in /in/LBGQO on line 24
Process exited with code 255.
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/LBGQO on line 34
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/LBGQO on line 5
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/LBGQO on line 5
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/LBGQO on line 5
Process exited with code 255.