From: hannes dot magnusson at gmail dot com Operating system: FreeBSD PHP version: 5CVS-2007-04-17 (CVS) PHP Bug Type: Scripting Engine problem Bug description: Altering $this via reference weirdness
Description: ------------ Using $this as parameter is possible, but when using it (except from printing it out) $this referes to itself It is also possible to change $this via reference. The object name seems to get changed - but when using it it works fine. Reproduce code: --------------- <?php class foo { function __construct($this) { printf("ctor \$this parameter is: %s\n", var_export($this, 1)); self::overwrite($this); printf("Returning from self::overwrite \$this is: %s", get_class($this)); $this->hello(); } function overwrite(&$obj) { $obj = new stdclass; printf("self::overwrite \$this is: %s\n", get_class($this)); } function hello() { printf(" ...lier! \$this is still %s\n", get_class($this)); } } $obj = new foo("Hello world"); var_dump($obj); Actual result: -------------- ctor $this parameter is: 'Hello world' self::overwrite $this is: foo Returning from self::overwrite $this is: stdClass ...lier! $this is still foo object(foo)#1 (0) { } -- Edit bug report at http://bugs.php.net/?id=41117&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=41117&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=41117&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=41117&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=41117&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=41117&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=41117&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=41117&r=needscript Try newer version: http://bugs.php.net/fix.php?id=41117&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=41117&r=support Expected behavior: http://bugs.php.net/fix.php?id=41117&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=41117&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=41117&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=41117&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=41117&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=41117&r=dst IIS Stability: http://bugs.php.net/fix.php?id=41117&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=41117&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=41117&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=41117&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=41117&r=mysqlcfg