Bug #67807 [Opn->Fbk]: Object passed by reference becomes a string

From: Date: Fri, 08 Aug 2014 17:18:15 +0000
Subject: Bug #67807 [Opn->Fbk]: Object passed by reference becomes a string
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-187028@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67807&edit=1 ID: 67807 Updated by: requinix@php.net Reported by: atlantisnova at gmail dot com Summary: Object passed by reference becomes a string -Status: Open +Status: Feedback Type: Bug Package: Class/Object related Operating System: Debian Linux -PHP Version: Irrelevant +PHP Version: 5.4.4 Block user comment: N Private report: N New Comment: http://3v4l.org/VqsdQ Works for me. That's the exact repro script you used? And rather than some description of the actual result, how about posting the actual, actual result? Previous Comments: ------------------------------------------------------------------------ [2014-08-08 15:11:22] atlantisnova at gmail dot com 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 this bug report at https://bugs.php.net/bug.php?id=67807&edit=1

« previous php.bugs (#187028) next »