ID:               30958
 User updated by:  schaa101 at tech dot nhl dot nl
 Reported By:      schaa101 at tech dot nhl dot nl
-Status:           Feedback
+Status:           Open
 Bug Type:         Class/Object related
 Operating System: Windows XP Pro SP2
 PHP Version:      5.0.2
 New Comment:

<?php

  class Singleton1
  {
    private $instance = null;
    
    private function __Construct()
    { }
    
    public function & GetInstance()
    {
      if( $this->instance == null )
        $this->instance = new Singleton1();
      
      return $this->instance;
    }
    
    public function Write( $message )
    {
      print "Singleton1 - " . $message;
    }

  }

  class Singleton2
  {
    private $instance = null;
    
    private function __Construct()
    { }
    
    public function & GetInstance()
    {
      if( $this->instance == null )
        $this->instance = new Singleton2();

      return $this->instance;
    }
    
    public function Write( $message )
    {
      print "Singleton2 - " . $message;
    }

  }
  
  class Main
  {
    public function __Construct()
    {
      Singleton1::GetInstance()->Write( "Singleton1" );
      echo "<br/>";
      Singleton2::GetInstance()->Write( "Singleton2" );
    }
  
  }

  new Main();
?>


Previous Comments:
------------------------------------------------------------------------

[2004-12-02 11:10:41] [EMAIL PROTECTED]

Please post the code here.

------------------------------------------------------------------------

[2004-12-02 11:09:30] schaa101 at tech dot nhl dot nl

Description:
------------
When you use 2 singletons, the second singeleton also returns the
instance of the first.
If you change the name of the variables, that store the instance of the
singleton class, inside the singletons and make them both unique, the
problem is solved though.

Reproduce code:
---------------
http://klaas.fiskaaf.com/singleton-bug.rar

or try

http://klaas.fiskaaf.com/singleton-bug.zip

Expected result:
----------------
Singleton1 - Singleton1
Singleton2 - Singleton2

Actual result:
--------------
Singleton1 - Singleton1
Singleton1 - Singleton2


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=30958&edit=1

Reply via email to