Page MenuHomePhabricator
Authored By
bzimport
Nov 22 2014, 2:40 AM
Size
935 B
Referenced Files
None
Subscribers
None

test.php

<?php
$originalObj = new A;
class A {
var $foo = 'default value';
}
// Important note: If you remove the &, the bug dissapears.
function changeFooWithUnusedReference( &$unusedReferenceToFoo, $newValue ) {
global $originalObj;
$newObj = clone $originalObj;
echo "Prior to changing value, the original object is supposed to be 'default value'. Actually is:\n";
echo $originalObj->foo . "\n";
echo "Prior to changing value, the cloned object is supposed to be 'default value'. Actually is:\n";
echo $newObj->foo . "\n";
// Change value
$newObj->foo = $newValue;
echo "\n";
echo "After changing value, the original object is supposed to be 'default value'. Actually is:\n";
echo $originalObj->foo . "\n";
echo "After changing value, the cloned object is supposed to be 'some other value'. Actually is:\n";
echo $newObj->foo . "\n";
}
changeFooWithUnusedReference( $originalObj->foo, 'Some other value' );

File Metadata

Mime Type
text/x-php
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12196
Default Alt Text
test.php (935 B)

Event Timeline