<?php
error_reporting(-1);
var_dump(class_exists('Closure'));
return;
/**
* @author Abel de Beer <abel@thispagecannotbefound.com>
*/
class Slot {
/**
* @var mixed
*/
public $listener;
/**
* @var boolean
*/
public $once;
function __construct($listener, $once) {
$this->listener = $listener;
$this->once = $once;
}
}
/**
* @author Abel de Beer <abel@thispagecannotbefound.com>
*/
interface OnceSignalInterface {
/**
* Add a listener to the signal, which will be removed once it has been
* executed.
*
* @param callable $listener A valid callable
*/
public function addOnce($listener);
/**
* Execute the signal's listeners.
*
* @param mixed ... Values to send to listeners
*/
public function dispatch();
}
/**
* @author Abel de Beer <abel@thispagecannotbefound.com>
*/
class OnceSignal implements OnceSignalInterface {
/**
* @var Slot[]
*/
protected $slots;
function __construct() {
$this->slots = array();
}
public function addOnce($listener) {
$this->slots[] = new Slot($listener, true);
}
public function dispatch() {
foreach ($this->slots as $index => $slot) {
if ($slot->once) {
unset($this->slots[$index]);
}
$callback = $slot->listener;
call_user_func($callback);
}
}
}
function myListener() {
echo __FILE__.' : '.__LINE__."\n";
}
$signal = new OnceSignal();
$signal->addOnce('myListener');
$signal->dispatch();
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/ncqvB on line 17
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/ncqvB on line 17
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/ncqvB on line 17
Process exited with code 255.