<?php
interface ListenerAggregate {}
class EM {
public function attach(callable $listener){
if($listener instanceof ListenerAggregate){
// this is indeed an aggregate!
echo "Attached aggregate";
}else{
echo "Attached regular callable";
}
}
}
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/Zbu7E on line 22 and defined in /in/Zbu7E 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/Zbu7E on line 22
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_FUNCTION, expecting ')' in /in/Zbu7E on line 22
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/Zbu7E on line 2
Process exited with code 255.