php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #25222 Broken references while using array_pop in a tree / linked list
Submitted: 2003-08-24 10:18 UTC Modified: 2003-08-24 23:05 UTC
From: kevin at kevin-online dot com Assigned:
Status: Closed Package: *Programming Data Structures
PHP Version: 4.3.2 OS: Gentoo Linux (2.4.20-gentoo-r2)
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: kevin at kevin-online dot com
New email:
PHP Version: OS:

 

 [2003-08-24 10:18 UTC] kevin at kevin-online dot com
Description:
------------
While building up a tree structure, i got strange troubles with some broken references. 
I used an array as stack holding references to objects. Some references within the object were broken after using a reference returned by array_pop.
PHP 4.3.2-r4
(Apache/1.3.28)

Reproduce code:
---------------
class Gnaa {
	var $something;
	var $name;
	function Gnaa( $name ) { $this->name = $name;}
	
	function setGnaa( &$something ) { $this->something = &$something; }
	function &getGnaa() { return $something; }
}

$a =& new Gnaa("a");
$stack[] = &$a;

$b =& new Gnaa("b");
$stack[] = &$b;

$child = &array_pop($stack); // should be &$b
$child->setGnaa( &$a );

print_r($child); // output differs!
print_r( $b );   // 


Expected result:
----------------
That $b has the reference to $a, because $child should be a reference to $b.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-08-24 23:05 UTC] sniper@php.net
fixed in PHP 5. (won't fix in PHP 4)

 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 01 17:01:34 2025 UTC