<?php
class Example {
function RunEvent($event) {
if (isset($this->events[$event])) {
foreach ($this->events[$event] as $k => $v) {
//call_user_func($v, &$this);
// The above line is working code on PHP 5.3.3, but
// throws a parse error on PHP 5.5.3.
call_user_func($v, $this);
}
}
}
}
$e = new Example;
$e->events['example'][] = 'with_ref';
$e->events['example'][] = 'without_ref';
$e->RunEvent('example');
function with_ref(&$e) {
$e->with_ref = true;
}
function without_ref($e) {
$e->without_ref = true;
}
print_r($e);
Deprecated: Creation of dynamic property Example::$events is deprecated in /in/cv2BS on line 18
Warning: with_ref(): Argument #1 ($e) must be passed by reference, value given in /in/cv2BS on line 10
Deprecated: Creation of dynamic property Example::$with_ref is deprecated in /in/cv2BS on line 22
Deprecated: Creation of dynamic property Example::$without_ref is deprecated in /in/cv2BS on line 25
Example Object
(
[events] => Array
(
[example] => Array
(
[0] => with_ref
[1] => without_ref
)
)
[with_ref] => 1
[without_ref] => 1
)
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
Warning: with_ref(): Argument #1 ($e) must be passed by reference, value given in /in/cv2BS on line 10
Example Object
(
[events] => Array
(
[example] => Array
(
[0] => with_ref
[1] => without_ref
)
)
[with_ref] => 1
[without_ref] => 1
)
Warning: Parameter 1 to with_ref() expected to be a reference, value given in /in/cv2BS on line 10
Example Object
(
[events] => Array
(
[example] => Array
(
[0] => with_ref
[1] => without_ref
)
)
[with_ref] => 1
[without_ref] => 1
)
Warning: Parameter 1 to with_ref() expected to be a reference, value given in /in/cv2BS on line 10
Example Object
(
[events] => Array
(
[example] => Array
(
[0] => with_ref
[1] => without_ref
)
)
[without_ref] => 1
)