Cannot create reference to property %s::$%s
Description
While it is possible to acquire a reference on an object’s property, it is not possible to acquire that reference on a property with hooks. By default, the property hook is returned by value, and cannot accomodate the reference. Unless the property hooks is made by reference, with a & before the name of the hook.
The message is also related to using an object in a foreach loop. There is a different message for direct creation of a reference on a property.
Example
<?php
class X {
public $byRef {
get {
$x = 42;
return $x;
}
}
}
foreach (new X as $prop => &$value) {
var_dump($value);
}
?>
Alternatives
- Add
&before thegethook. - Make the property a normal property, without hooks.
- Avoid using a reference on a property hook.