<?php
function foo(&$obj) {
return $obj;
}
$o = new StdClass;
// No errors
foo($o);
call_user_func('foo', $o);
call_user_func('foo', [$o]);
$a[] = $o;
$a[] = $o;
$a[] = $o;
// Warning: Parameter 1 to foo() expected to be a reference, value given in
call_user_func('foo', array_slice($a, 0, 1));
Warning: foo(): Argument #1 ($obj) must be passed by reference, value given in /in/oBnkT on line 10
Warning: foo(): Argument #1 ($obj) must be passed by reference, value given in /in/oBnkT on line 11
Warning: foo(): Argument #1 ($obj) must be passed by reference, value given in /in/oBnkT on line 18
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 10
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 11
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 18
Output for 7.0.0 - 7.0.8, 7.0.10 - 7.0.20
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 18
Output for 7.0.9
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 10
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 18
Output for 5.6.0 - 5.6.26
Warning: Parameter 1 to foo() expected to be a reference, value given in /in/oBnkT on line 10