__set and reference

php.internals

Superbiji

20 years ago
Hi All, in prior 5.1, it is allowed to do: class MyClass { public function __set($key, &$value) {} } $c = new MyClass(); $c->d=10; in 5.1 up: that code result this: Fatal error: Couldn't execute method MyClass::__set in Unknown on line 0 I have submit this bug. My question is, is it possible to assign as reference using setter method ?
-- kamus online - http://kamus.landak.com/

Marcus Börger

20 years ago
Hello Superbiji, Monday, December 12, 2005, 4:49:06 AM, you wrote:
> Hi All,
> in prior 5.1, it is allowed to do: > class MyClass { > public function __set($key, &$value) {} > } > $c = new MyClass(); > $c->d=10;
> in 5.1 up: > that code result this: > Fatal error: Couldn't execute method MyClass::__set in Unknown on line 0
> I have submit this bug. > My question is, is it possible to assign as reference using setter method ?
So here the answer in slightly more words: No, you have to keep the signature of __set() thus you cannot assign references using __set(). This was an error we fixed with 5.1.0. Best regards, Marcus

Dmitry Stogov

20 years ago
Assign by reference is not possible with __set() method. Thanks. Dmitry.