php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #2075 Self referential objects can't have more than two references to themselves
Submitted: 1999-08-16 16:14 UTC Modified: 2000-05-30 18:58 UTC
From: dom at recoil dot org Assigned:
Status: Closed Package: Scripting Engine problem
PHP Version: 4.0 Beta 2 OS: linux redhat 5.2
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: dom at recoil dot org
New email:
PHP Version: OS:

 

 [1999-08-16 16:14 UTC] dom at recoil dot org
Whenever I try to build a self referential structure, 
information is lost after two nodes in the chain.

The following code shows that the structures can never
be more than two nodes deep.

<?
class Test
{
        var $next;

        function add($next)
        {
                $this->next = $next;
                return $next;
        }

        function dump()
        {
                echo "Test!<br>";
                $this->next->dump();
        }
}

$test = new Test;
$next = $test->add(new Test);
$next = $test->add(new Test);
$next = $test->add(new Test);

$test->dump();
?>

This code causes the following error with both
php3 and php4b2:

Test!
Test!

Fatal error: Call to a member function on a non-object in /home/dom/public_html
/treetest/test.php3 on line 19

Configure line was:
 ./configure --with-mysql --with-apache=../apache_1.3.6 --enable-track-vars --with-xml


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1999-08-17 08:24 UTC] dom at recoil dot org
Whenever I try to build a self referential structure, 
information is lost after two nodes in the chain.

The following code shows that the structures can never
be more than two nodes deep.

<?
class Test
{
        var $next;

        function add($next)
        {
                $this->next = $next;
                return $next;
        }

        function dump()
        {
                echo "Test!<br>";
                $this->next->dump();
        }
}

$test = new Test;
$next = $test->add(new Test);
$next = $next->add(new Test);
$next = $next->add(new Test);

$test->dump();
?>

This code causes the following error with both
php3 and php4b2:

Test!
Test!

Fatal error: Call to a member function on a non-object in /home/dom/public_html
/treetest/test.php3 on line 19

Configure line was:
 ./configure --with-mysql --with-apache=../apache_1.3.6 --enable-track-vars --with-xml

 [1999-12-15 15:00 UTC] sas at cvs dot php dot net
Reclassifying
 [2000-05-30 18:58 UTC] stas at cvs dot php dot net
Not a bug. On the second pass over dump $this->next is null and thus 
$this->next call fails.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sun Jul 13 11:01:33 2025 UTC