On Thu, 02 Jun 2005 09:05:24 -0400
Jean-Francois Levesque <[EMAIL PROTECTED]> wrote:

> Hi!
> 
> In PHP5, the objects are supposed to be passed by reference, right?  I 
> try to use a singleton pattern but it's not working.  I just compile the 
> lastest php version (5.0.4) and I still have the problem.
> 
> My code :
> 
> <?php
> class Example
> {
>     // Hold an instance of the class
>     private static $instance;
>     public $testvar = 'init';
> 
>     // The singleton method
>     public static function singleton()
>     {
>         if (!isset(self::$instance)) {
>             $c = __CLASS__;
>             self::$instance = new $c;
>         }
> 
>         return self::$instance;
>     }
>     // Prevent users to clone the instance
>     public function __clone()
>     {
>         trigger_error('Clone is not allowed.', E_USER_ERROR);
>     }
> }
> 
> $test = Example::singleton();
> $test2 = Example::singleton();
> 
> $test->testvar = 1;
> $test2->testvar = 2;
> 
> echo $test->testvar." ; ".$test2->testvar;
> 
> ?>
> 
> 
> Output :
> 
> Fatal error: Clone is not allowed. in 
> /usr/home/usagers/linux/step_html/stationnement/test.php on line 21
> 
> 
> Phpinfo : http://step.polymtl.ca/~linux/stationnement/phpinfo.php
> 
> Should I set something in the php.ini?  What can I do?

I get "2 ; 2" and no error with latest snapshots of 5.0.5-dev and HEAD.
Check if you have zend.ze1_compatibility_mode Off.

-- 
Wbr, 
Antony Dovgal aka tony2001
[EMAIL PROTECTED]

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to