<?php
class Foo
{
/** @var string */
protected $bar;
/**
* @param string $bar
*/
public function __construct($bar)
{
$this->bar = $bar;
}
/**
* @return null
*/
public function __invoke()
{
echo $this->bar;
}
}
//works as expected, using __invoke()
$foo = new Foo('bar');
$foo();
//works as expected, calling __invoke()
(new Foo('bar'))->__invoke();
//invalid, but why !? Should work from my point of view
(new Foo('bar'))();
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /in/nGuZl on line 29
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_OBJECT_OPERATOR in /in/nGuZl on line 29
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/nGuZl 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/nGuZl 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/nGuZl on line 5
Process exited with code 255.