php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #24854 Varible Pass By Referance Fail
Submitted: 2003-07-29 09:01 UTC Modified: 2003-07-29 11:57 UTC
From: szernik at shawnzernik dot net Assigned:
Status: Not a bug Package: Scripting Engine problem
PHP Version: 5.0.0b1 (beta1) OS: Windows XP
Private report: No CVE-ID: None
 [2003-07-29 09:01 UTC] szernik at shawnzernik dot net
Description:
------------
If I pass the VarRefTest(&$Test) I get the same results.  The result exspected are 10, 5, 5; 10, 5, 10; 10, 5, 10; 10, 5, 5.  Just wanted to send you this since the docs online did not outline a new var ref model.


Reproduce code:
---------------
class tester {
	private $Number;

	function setNumber($New) {
		$this->Number = $New;
	}

	function getNumber() { return $this->Number; }
}

function RefTest ($Obj) {
		$Obj->setNumber(5);
		print "RefTest Number: " . $Obj->getNumber() . "<br>\n";
}

function VarTest ($Var) {
		$Var = 5;
		print "VarTest Number: " . $Var . "<br>\n";
}

function VarRefTest (&$Var) {
		$Var = 5;
		print "VarRefTest Number: " . $Var . "<br>\n";
}

// Obj Ref Test
$Test = new tester;
$Test->setNumber(10);
print "<p>Obj Number: " . $Test->getNumber() . "<br>\n";
RefTest($Test);
print "Obj Number: " . $Test->getNumber() . "<br>\n";

// Obj Var Test
$Test = new tester;
$Test->setNumber(10);
print "<p>Obj Number: " . $Test->getNumber() . "<br>\n";
RefTest($Test->__clone());
print "Obj Number: " . $Test->getNumber() . "<br>\n";

// Var Val Test
$TestA = 10;
print "<p>Number: " . $TestA . "<br>\n";
RefTest($Test);
print "Number: " . $TestA . "<br>\n";

// Var Ref Test
$TestA = 10;
print "<p>Number: " . $TestA . "<br>\n";
VarRefTest($Test);
print "Number: " . $TestA . "<br>\n";

Expected result:
----------------
The result exspected are 10, 5, 5; 10, 5, 10; 10, 5, 10; 10, 5, 5.

Actual result:
--------------
Obj Number: 10
RefTest Number: 5
Obj Number: 5


Obj Number: 10
RefTest Number: 5
Obj Number: 10


Number: 10
RefTest Number: 5
Number: 10


Number: 10
VarRefTest Number: 5
Number: 10


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-07-29 11:02 UTC] sniper@php.net
If your script wasn't buggy, it would work just fine..
(you're passing the VarRefTest() $Test, not $TestA)

 [2003-07-29 11:57 UTC] szernik at shawnzernik dot net
Sorry and thanks.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sat Aug 16 13:00:03 2025 UTC