<?php
interface ListenerAggregate {}
class EM {
public function attach(callable $listener)
{
if($listener instanceof ListenerAggregate){
echo "Attached an aggregate\n";
}else{
echo "Attached regular callable\n";
}
}
}
class SomeAggregateListener implements ListenerAggregate {
public function __invoke()
{
// look ma, I'm a callable!
}
}
$em = new EM;
$em->attach(function(){});
$aggregate = new SomeAggregateListener;
$em->attach($aggregate);
Catchable fatal error: Argument 1 passed to EM::attach() must be an instance of callable, instance of Closure given, called in /in/UCsG3 on line 23 and defined in /in/UCsG3 on line 5
Process exited with code 255.
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /in/UCsG3 on line 23
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_FUNCTION, expecting ')' in /in/UCsG3 on line 23
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/UCsG3 on line 2
Process exited with code 255.