Bug #67807 [NEW]: Object passed by reference becomes a string

From: Date: Fri, 08 Aug 2014 15:11:23 +0000
Subject: Bug #67807 [NEW]: Object passed by reference becomes a string
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-187025@lists.php.net to get a copy of this message
From: atlantisnova at gmail dot com Operating system: Debian Linux PHP version: Irrelevant Package: Class/Object related Bug Type: Bug Bug description:Object passed by reference becomes a string Description: ------------ My version is PHP 5.4.4-14+deb7u7... Also affects PHP 5.4.4-14+deb7u11 - the production server we discovered it on. It seems that any sort of notice in a function into which an object has been passed by reference replaces the reference with a string containing its class name. Code executed after the pass-by-reference also receives the string rather than the original object. Thanks! Test script: --------------- class A{ function do_stuff(&$b) { $defined = 0; #trigger_error("If I fixed the undefined variable but enabled this line instead, it will also turn b from an object into a string! So user-triggered notices bork it as well."); $x = $undefined || $defined ? 14 : 0; var_dump('In function:', $b); } } class B{} $a = new A(); $b = new B(); $a->do_stuff($b); var_dump('After function:', $b); Expected result: ---------------- $b should be an object of class B Actual result: -------------- $b is the string 'B' -- Edit bug report at https://bugs.php.net/bug.php?id=67807&edit=1 --

« previous php.bugs (#187025) next »